- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
在学习 Lisp 时,我看到如果一个函数有两个参数,一个是单个元素或子集(needle),另一个是列表(haystack),元素或子集总是来首先。
例子:
(member 3 '(3 1 4 1 5))
(assoc 'jane '((jane doe)
(john doe)))
(subsetp '(a e) '(a e i o u))
对我来说,似乎 Lisp 中有一个规则,函数应该遵循这个指导:首先是部分,其次是整个事情。
这个发现实际上是基于 Lisp 中的指南,还是偶然?
最佳答案
像 member
和 assoc
这样的函数至少是从 1960 年开始的。
我只是希望它遵循数学符号,例如在集合论中:
e ∈ m
由于 Lisp 使用前缀表示法,谓词/函数/运算符在前,元素在后,集合在后:
(∈ e m)
John McCarthy 拥有博士学位。数学专业。
一般来说,在 Common Lisp 中最后一个类似集合的参数也更有用:
(defun find-symbol (name package) ...)
Common Lisp 中的实际定义是:
(defun find-symbol (name &optional (package *package*)) ...)
这允许我们使用当前包作为有用的默认包。
关于lisp - Lisp 函数中针/大海捞针的排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29498126/
我有一个函数,它接受一个字符串(the haystack)和一个字符串数组(the needles),如果至少有一个 needle 是 haystack 的子串,则返回 true。编写它并没有花太多时
所以给定“针”和“这里有针但没有这个针大海捞针” 我写了 def find_needle(n,h): count = 0 words = h.split(" ") for wo
我正在尝试创建一个程序来确定是否在数组中找到用户输入。 然后我要输出整数在数组中的位置。 看起来我的程序没有从我的主程序中提取任何内容。 这是程序: public static int returnI
我有一个 C 程序,它从命令行获取参数。以相反的顺序打印参数。并在大海捞针中找到针/子串。我有以下代码: 哑巴.c #include #include #include #include "Du
这个问题在这里已经有了答案: Compare two objects in Java with possible null values (12 个答案) What is a NullPointer
我是一名优秀的程序员,十分优秀!