如何在LISP中定义LAMBDA函数?

如何在LISP中定义LAMBDA函数?,lambda,lisp,common-lisp,Lambda,Lisp,Common Lisp,我根本无法使用lambda函数,因为我遇到以下错误: apply/funcall的参数不是函数:(LAMBDA(E)(COUNT_M E)) 代码是: > (DEFUN count_atoms (m l) > (COND ((ATOM l) (COND ((EQUAL m l) 1) > (t 0))) > (t (APPLY '+ > (MAPCAR '(LAMBDA

我根本无法使用lambda函数,因为我遇到以下错误: apply/funcall的参数不是函数:(LAMBDA(E)(COUNT_M E))

代码是:

> (DEFUN count_atoms (m l)
>     (COND ((ATOM l) (COND ((EQUAL m l) 1)
>                       (t 0)))
>       (t (APPLY '+
>                 (MAPCAR '(LAMBDA (e) (count_atoms m e))
>                         l)))))
为了

(计数_原子3’((33)3(44)5))

它应该打印3

这里怎么了?

使用
(MAPCAR#'(LAMBDA(e)(count#m e))…
,带有“sharp”符号。与
应用相同,使用
+

#'(lambda…)
与写
(function(lambda…))
是一样的。还有一个宏
lambda
,可以让你不用在那里写
(lambda…

另见:


哈哈,太好了!多谢了!@WillNess:你应该把它作为回答而不是评论。