【发布时间】:2012-02-16 11:47:21
【问题描述】:
我有一个列表列表,我想删除其中的某种列表。因此,我会使用带有 lambda 表达式的 remove-if-not。但是我可能不需要遍历列表的所有元素来确定是否应该删除它,因为需要返回一个结论。但是如何在匿名 lambda 函数中应用一个呢?
(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 函数返回。
【问题讨论】:
-
如果在外层 lambda 上使用 alambda,在内层使用 lambda,则可以 return-from self;结帐 mapc 的内部
标签: lambda common-lisp