在 Emacs 劣质 Lisp 中读取用户输入



我试图通过阅读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/

最新更新