【发布时间】:2011-01-05 21:58:27
【问题描述】:
我不明白为什么这段代码在不同的实现中表现不同:
(format t "asdf")
(setq var (read))
在 CLISP 中,它的行为与预期一样,打印提示,然后读取,但在 SBCL 中,它读取的是 then 输出。我在网上看了一点,改了:
(format t "asdf")
(force-output t)
(setq var (read))
这同样在 CLISP 中运行良好,但在 SBCL 中它仍然读取,然后输出。我什至尝试将它分成另一个函数:
(defun output (string)
(format t string)
(force-output t))
(output "asdf")
(setq var (read))
它仍然会读取,然后输出。我没有正确使用force-output 还是这只是 SBCL 的特性?
【问题讨论】:
标签: io format common-lisp io-buffering