我需要一个递归 LISP 函数,它枚举任何大于 3 的数字列表中的元素数。我不允许使用 let、循环或 while,只能使用基本的 CAR、CDR、SETQ、COND、CONS、APPEND、PROGN , 列表...
这是我对该功能的尝试:
(defun foo (lst)
(COND ((null lst) lst)
(T (IF (> (CAR lst) 3)
(1+ (foo (CDR lst)))
(foo (CDR lst)) ) ) ) )
函数调用:
(foo '(0 1 2 3 4 5 6))