gpt4 book ai didi

lisp - Lisp 函数中针/大海捞针的排序

转载 作者:太空宇宙 更新时间:2023-11-03 18:42:09 25 4
gpt4 key购买 nike

在学习 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 中的指南,还是偶然?

最佳答案

memberassoc 这样的函数至少是从 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com