我试图通过阅读Practical Common Lisp来学习Lisp,并且在尝试读取用户输入时遇到了一个小绊脚石。 我已经定义了提示读取以提示用户输入:
(defun prompt-read (prompt)
(format *query-io* "~a: " prompt)
(force-output *query-io*)
(read-line *query-io*))
当我尝试评估提示阅读时,按 [Enter] 运行语句似乎被接受为输入,因此结果输入为空
>(prompt-read "Test")
Test:
""
NIL
我完全遵循了该示例,因此我假设这与我的环境有某种关系。 我在Windows中使用Emacs Inferior Lisp,我是否必须对我的代码进行一些调整才能获得我期望的行为?
您的代码似乎没有任何问题,并且还可以在MS Windows上正确运行SBCL。与其使用劣质的 lisp 模式(这确实较差),为什么不尝试使用 SLIME 在 Emacs 中编辑和运行 CL 代码呢?您可以按照以下指南快速安装它:
-
http://www.quicklisp.org/beta/
-
http://common-lisp.net/project/slime/