【发布时间】:2012-09-29 13:03:34
【问题描述】:
下面的这个函数检查列表中的数字。例如,这里它正在寻找 12。如果 12 存在,则返回 T (true),如果不存在,则返回 NIL。我试图理解语法,但这让我感到困惑。有没有人可以帮助并用简单的英语描述这段代码的作用?
1> (defun an (&rest n)
(block nil
(setq x (car n))
(setq n (cdr n))
(loop (< x 100)
(setq n (cdr n))
(if (eq x 2) (return (eq (car n) 12))) (setq x (1- x)))))
AN
2> (an 2 3 4 5 66 7)
NIL
3> (an 2 3 12 3 4 5)
T
附加问题:&rest 是如何工作的或者它有什么作用?
【问题讨论】:
标签: lisp common-lisp