私は、Paul Graham のANSI Common Lispという本を読んでいます。次の例があります。
(defun ask-number ()
(format t "Please enter a number. ")
(let ((val (read)))
(if (numberp val)
val
(ask-number))))
次のように動作する必要があります。
$ (質問番号)
番号を入力してください。a
番号を入力してください。(ホ ハム)
番号を入力してください。52
52
しかし、試してみると(SBCL 1.0.55)、読み取りが成功するまでフォーマット文字列が出力されません:
$ (質問番号)
a
(ホ ハム)
52
番号を入力してください。番号を入力してください。番号を入力してください。
52
エラーはどこにありますか?意図したとおりに動作させるにはどうすればよいですか?