我得到了一个列表的列表,我想删除某种列表。因此,我会使用remove-if-not-lambda表达式。但是我可能不需要通过列表中的所有元素来确定它是否应该被删除,因为需要返回来自结论。但我怎么能申请一个匿名lambda函数?是否有可能在lambda函数中使用return-from
(defvar *listlist* (list (list 1 2 3) (list 3 4 5) (list 5 6 7) (list 7 8 9)))
(remove-if-not #'(lambda (arg)
(dolist (x arg)
(when (= x 3)
(return-from lambda t)))
nil)
*listlist*)
另一件事困扰我的是可以使用mapcar代替dolist的,但后来我的问题变得更糟,因为我现在还得回去,从两个半波功能。
如果你在外部lambda上使用alambda,在内部使用lambda,你可以从self返回; checkout mapc – 2012-02-17 00:17:30