gpt4 book ai didi

lisp - Common Lisp - 打印在一行/返回/单行计数器/格式化

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

我有兴趣在 Common Lisp 中实现“单行”计数器/进度条。没什么特别的,就像这样:

=>

==>

===>...等..

然后重新开始。或者统计我访问过的节点数。

但是,我想在一行中完成所有这些,并清除之前打印的字符。例如,在 Python 中,它会是这样的:

for i in range(0,1000):    
print "\r",i," "

这会算数,但将所有内容都放在一行中,同时在任何给定迭代之前清除该行上打印的所有内容。

我知道在 lisp 中有 (format t "text"#\return),但这似乎不起作用。

有人知道我该怎么做吗? (我环顾四周,似乎找不到任何东西)。

谢谢,

安德鲁

编辑:

我找到了解决方案。您需要为要处理的 #\return 添加一个指令(通用的“~A”有效):

(loop for i from 0 to 50000 do
(format t "~A~A " #\return i))

这将数到 50,000,您可以观看它的 Action 。因此,它适用于您可能想要重用单个输出行的任何其他情况。

最佳答案

 (defun show-progress (len)
(format t "=")
(dotimes
(i len)
(format t "="))
(format t ">")
)

执行这个函数后你应该看到这个输出:

CL-USER> (show-progress 10)
===========>
NIL

关于lisp - Common Lisp - 打印在一行/返回/单行计数器/格式化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12906738/

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