SBCL开关打印和读取订单(lisp)

DJM*_*DJM 3 lisp printing sbcl

我还在学习口齿不清,所以,当我遇到这个问题时,它让我很困惑.我有一个简单的功能,我想先打印,然后读取输入:

(defun ask()
   (princ '?)
   (read))
Run Code Online (Sandbox Code Playgroud)

所以,当我用CLISP运行它时,它显示了预期的内容,它打印了吗?然后,在同一行上,我可以将输入写入读取函数.

当我用SBCL运行时,它出错了.首先问我输入然后打印?我想这可能是因为我没有制作换行符,但我真的想知道如何在SBCL中使用同一行.另外,我想知道为什么CLISP中的结果是正确的,而SBCL中的结果则不然.提前谢谢你的帮助.

Vse*_*kin 11

它适用于我,但也许你的情况可以与SBCL执行的输出缓冲相关联.您可以添加(finish-output)以后princ保证,打印将在read调用之前完成.