lisp中的递归函数出错了

时间:2014-10-03 16:24:40

标签: recursion lisp common-lisp

我正在尝试编写一个简单的递归程序,在某些范围内打印数字的正方形:

(defun show-squares (i end)
    (if (> i end)
        'done
        (format t "~A   ~A~%" i (* i i))
        (show-squares (+ i 1) end))) 

我收到错误:*** - SYSTEM::READ-EVAL-PRINT: variable SHOW-SQUARES has no value 这里出了什么问题?

2 个答案:

答案 0 :(得分:3)

我怀疑问题的一部分是错误形成的if语句。

“if”需要2个或3个参数,而你传递4个。

答案 1 :(得分:3)

你可能错过了一些progn

(defun show-squares (i end)
    (if (> i end)
        'done
        (progn 
            (format t "~A   ~A~%" i (* i i))
            (show-squares (+ i 1) end))))