我试图写一个简单的递归程序,打印一定范围内的数字的平方:递归函数出错
(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
错在这里?
'if'只需要三个参数:测试时,则 - 部分和其他部分。你已经给了它四个。 – 2014-10-03 16:45:07
另请参阅[您是否可以使用If语句执行多个语句?](http://stackoverflow.com/q/2852249/1281433)和[表单中的连续调用/评估?](http://stackoverflow.com/q/2878240/1281433) – 2014-10-03 16:47:14
由错误判断:函数的值与其他值相同,并且看起来您的lisp不知道SHOW-SQUARES是什么;我想你可能在调用函数之前忘记了解释/编译代码。 – miercoledi 2014-10-03 19:02:33