尝试以Lisp递归方式打印三角形。我溢出,但是我不知道从哪里来。请注意,我是Lisp编程的新手。
(defun triangle (n)
(if (not (oddp n))(progn
(print "This is not an odd integer")
(return-from triangle n)))
(if (< n 1) '())
(setf lst (cons (car(list n)) (triangle (- n 2))))
(print lst))
(三角形7)
括号错误!根据您的缩进,我相信您需要以下内容:
(if (< n 1) '())
(setf ...
成为if-then-else,其中setf
在else分支中。为此,它应该看起来像:
(if (< n 1) '()
(setf ...
在当前设置中,始终评估setf
。