1

我想实现filter根据条件过滤列表的功能

(defun filter (func xs)                                                          
  (mapcan                                                                        
    (lambda (x)                                                                  
      (when (func x) (list x))) xs ))                                            

但我收到一个错误:

*** - EVAL: undefined function FUNC

我认为 lambda 应该看到func. 如何正确func传递lambda

我使用CLISP

4

1 回答 1

5

你要

(当 ( funcall func x) (list x))

代替

(when (func x) (list x))

有关函数与变量命名空间的更多信息:

于 2012-10-30T09:55:20.943 回答