试图用Lisp递归打印三角形

问题描述 投票:1回答:1

尝试以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))

enter image description here

(三角形7)

arrays recursion common-lisp clisp cons
1个回答
0
投票

括号错误!根据您的缩进,我相信您需要以下内容:

(if (< n 1) '())
    (setf ...

成为if-then-else,其中setf在else分支中。为此,它应该看起来像:

(if (< n 1) '()
    (setf ...

在当前设置中,始终评估setf

© www.soinside.com 2019 - 2024. All rights reserved.