我正在尝试编写一个简单的递归程序,在某些范围内打印数字的正方形:
(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
这里出了什么问题?
答案 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))))