我正在阅读Paul Graham的《 ANSI Common Lisp 》一书,有这个例子:
(defun ask-number ()
(format t "Please enter a number. ")
(let ((val (read)))
(if (numberp val)
val
(ask-number))))
它的行为应该是这样的:
$(询问号码)
请输入一个数字。一种
请输入一个数字。(哼哼)
请输入一个数字。52
52
但是当我尝试它(SBCL 1.0.55)时,它不会打印格式字符串,直到成功读取:
$(询问号码)
一种
(哼哼)
52
请输入一个数字。请输入一个数字。请输入一个数字。
52
错误在哪里?如何使其按预期方式运行?