我已经在我的 fedora-13 机器上安装了 clisp。在 clisp 解释器中,我输入了以下内容:
(defun ask-num ()
(format t "Please enter a number.")
(let ((val (read)))
(if (numberp val)
val
(ask-num))))
这是 Paul Graham 书中的原始代码:
(defun ask-number ()
(format t "Please enter a number. ")
(let ((val (read)))
(if (numberp val)
val
(ask-number))))
有什么我错过的吗?这似乎更像是解释器的一种特质,而不是代码中的错误。这是链接。对于有问题的代码,您可能必须按 ctrl-F。
更新:哈哈,对……问题!
[9]> (defun ask-num ()
(format t "Please enter a number.")
(let ((val (read)))
(if (numberp val)
val
(ask-num))))
ASK-NUM
[10]> ask-num
*** - SYSTEM::READ-EVAL-PRINT: variable ASK-NUM has no value
The following restarts are available:
USE-VALUE :R1 Input a value to be used instead of ASK-NUM.
STORE-VALUE :R2 Input a new value for ASK-NUM.
ABORT :R3 Abort main loop