试图用Lisp递归打印三角形

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了试图用Lisp递归打印三角形相关的知识,希望对你有一定的参考价值。

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

答案

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

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

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

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

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

以上是关于试图用Lisp递归打印三角形的主要内容,如果未能解决你的问题,请参考以下文章

用JAVA打印杨辉三角…

如何在 Lisp 中记忆递归函数?

面试题

用java打印菱形。

在 C 中打印三角形

使用pascals三角形打印二项式系数