如何在LISP中定义LAMBDA函数?
我根本无法使用lambda函数,因为我遇到以下错误: apply/funcall的参数不是函数:(LAMBDA(E)(COUNT_M E)) 代码是:如何在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
> (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:你应该把它作为回答而不是评论。