我想实现filter基于条件过滤列表的函数
(defun filter (func xs)
(mapcan
(lambda (x)
(when (func x) (list x))) xs ))
Run Code Online (Sandbox Code Playgroud)
但是我收到一个错误:
*** - EVAL: undefined function FUNC
Run Code Online (Sandbox Code Playgroud)
我认为lambda应该看到func.如何传递func到lambda正确的?
我使用CLISP.
你要
(when (funcall func x) (list x))
代替
(when (func x) (list x))
Run Code Online (Sandbox Code Playgroud)
有关函数与变量命名空间的更多信息