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-output
、force-output
和 clear-output
对缓冲流输出的内部处理进行控制。
finish-output
尝试确保发送到输出流的任何缓冲输出已到达其目的地,然后 returns.
force-output
启动任何内部缓冲区的清空,但不等待完成或确认 return。
clear-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
正在尝试学习 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-output
、force-output
和 clear-output
对缓冲流输出的内部处理进行控制。
finish-output
尝试确保发送到输出流的任何缓冲输出已到达其目的地,然后 returns.force-output
启动任何内部缓冲区的清空,但不等待完成或确认 return。clear-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