我写了一个测试函数来测试我对 Lisp 中“return-from”的理解
(defun testp (lst)
(mapc #'(lambda (x y)
(if (null lst)
(return-from testp t)))
lst
(cdr lst)))
我认为测试 (testp 'nil) 应该返回 T,但它返回 NIL。 您能帮助我理解为什么它返回 NIL 吗?
非常感谢。
最佳答案
您通过两个空列表调用 MAPC。
如果列表没有任何要映射的元素,应该如何使用 LAMBDA 函数?
顺便说一句,你可以写“list”而不是“lst”。
(defun testp (list)
(mapc #'(lambda (x y)
(if (null list)
(return-from testp t)))
list
(cdr list)))
关于lisp - 一个简单的 lisp 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1841053/