在Emacs Lisp中读取用户输入

在Emacs Lisp中读取用户输入,emacs,lisp,common-lisp,user-input,Emacs,Lisp,Common Lisp,User Input,我试图通过阅读来学习Lisp,在尝试阅读用户输入的早期,我遇到了一个小绊脚石。我已经定义了提示读取以提示用户输入: (defun prompt-read (prompt) (format *query-io* "~a: " prompt) (force-output *query-io*) (read-line *query-io*)) 当我尝试计算prompt read时,按[Enter]运行语句似乎被接受为输入,因此结果输入为空 >(prompt-read "Test")

我试图通过阅读来学习Lisp,在尝试阅读用户输入的早期,我遇到了一个小绊脚石。我已经定义了提示读取以提示用户输入:

(defun prompt-read (prompt)
  (format *query-io* "~a: " prompt)
  (force-output *query-io*)
  (read-line *query-io*))
当我尝试计算prompt read时,按[Enter]运行语句似乎被接受为输入,因此结果输入为空

>(prompt-read "Test")
Test: 
""
NIL

我完全遵循了这个例子,所以我假设这与我的环境有关。我正在Windows中使用Emacs Subsier Lisp,是否需要对代码进行一些调整以获得我期望的行为?

您的代码似乎没有问题,并且它也可以在MS Windows上正确运行,例如SBCL。与其使用低劣的lisp模式(这真的很低劣),不如尝试使用SLIME在Emacs中编辑和运行CL代码?您可以按照以下指南快速安装:


谢谢,我今晚会试试SLIME,看看这能否解决我的问题。我没有预先考虑,因为很多网站都建议在学习/探索语言时使用默认的低级模式。