Lisp中"apply"和"mapcar"之间的区别是什么

Don*_*Lun 8 lisp common-lisp

(defun describe-paths (location edges) 
(apply #'append (mapcar #'describe-path (cdr (assoc location edges)))))
Run Code Online (Sandbox Code Playgroud)

小智 11

有什么相似之处?或者,这里潜伏着另一个问题吗?

(来自elisp的链接,因为这就是我所知道的.引号只是摘录,链接包含可能与特定"Lisp"相关或不相关的示例.)

mapcar

mapcar是一个函数,它依次使用第二个参数的每个元素调用它的第一个参数.第二个参数必须是序列.

适用(在调用函数中)

应用带有参数的调用函数,就像funcall但有一点不同:最后一个参数是一个对象列表,它们作为单独的参数传递给函数,而不是单个列表.我们说apply会传播这个列表,以便每个元素成为一个参数.

快乐的编码.