Common Lisp:冲洗标准输出

Common Lisp: flush standard output

正在尝试学习 lisp(我想 emacs 也会跟着学)。 我想知道您将如何清除输出并替换它。 可能在 LISP repl 或 emacs 缓冲区中。
类似于 python.

中的以下内容
def go(r):
    for i in range(r):
        sys.stdout.write("\rDoing %i" % i)
        sys.stdout.flush()

对于普通的 lisp,您正在寻找

Functions FINISH-OUTPUT, FORCE-OUTPUT, CLEAR-OUTPUT:

finish-outputforce-outputclear-output 对缓冲流输出的内部处理进行控制。

  • finish-output 尝试确保发送到输出流的任何缓冲输出已到达其目的地,然后 returns.

  • force-output 启动任何内部缓冲区的清空,但不等待完成或确认 return。

  • clear-output 尝试中止正在进行的任何未完成的输出操作,以允许尽可能少的输出继续到目的地。

Variables *DEBUG-IO*, *ERROR-OUTPUT*, *QUERY-IO*, *STANDARD-INPUT*, *STANDARD-OUTPUT*, *TRACE-OUTPUT*

  • *debug-io* 的值称为 debug I/O,是用于交互式调试目的的流。

  • *error-output* 的值称为错误输出,是一个流,警告和非交互式错误消息应发送到该流。

  • *query-io* 的值,称为查询 I/O,是在向用户提问时使用的双向流。问题应输出到此流,并从中读取答案。

  • *standard-input* 的值称为标准输入,是一种流,当没有明确提供特定输入流时,许多运算符将其用作默认输入源。

  • *standard-output* 的值称为标准输出,是一种流,当未明确提供特定输出流时,许多运算符将其用作输出的默认目标。

  • *trace-output* 的值称为跟踪输出,是跟踪函数(参见跟踪)和时间宏打印其输出的流。

Emacs Lisp 完全不同,您可能想从这里开始:https://www.gnu.org/software/emacs/manual/html_node/elisp/Output-Functions.html