我是 lisp 的初学者,我需要有人逐步向我解释prog
表单的工作原理。l1 的初始值是多少?无?
如果列表在第一级有偶数个元素,则问题输出 T,否则输出 nil。
(defun nr_par (l)
(prog ((l1 l))
ciclu
(cond
((null l1) (return T))
((null (cdr l1)) (return NIL))
((null (cddr l1)) (return T))
(T (setf l1 (cddr l1))
(go ciclu)))))
在控制台上:
(nr_par '(1 2 3 4 5 6 7 8))
T