gpt4 book ai didi

format - LISP:(格式)仅在成功(读取)后打印

转载 作者:太空宇宙 更新时间:2023-11-03 18:50:15 24 4
gpt4 key购买 nike

我正在阅读 Paul Graham 的书 ANSI Common Lisp,其中有一个例子:

(defun ask-number ()
(format t "Please enter a number. ")
(let ((val (read)))
(if (numberp val)
val
(ask-number))))

它应该像这样:


$(询问号码)

请输入一个数字。 一个

请输入一个数字。 (哼)

请输入一个数字。 52

52


但是当我尝试它时 (SBCL 1.0.55),它不会打印 format 字符串,直到成功 read:


$(询问号码)

一个

(哼哼)

52

请输入一个数字。请输入一个数字。请输入一个数字。

52


哪里出错了?如何使其按预期方式运行?

最佳答案

这是一个经常被问到的问题。 Stackoverflow 上可能有重复项。

可以缓冲输出。

然后您需要调用标准的 Common Lisp 函数 FINISH-OUTPUT 来强制 IO 系统写入任何待处理的输出。

之后,阅读。

关于format - LISP:(格式)仅在成功(读取)后打印,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9276590/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com