我希望在Common Lisp中实现一个“单行”计数器/进度条。没有太多花哨,只是像这样的东西:
=>
==>
===> ...等等。
然后再重新开始。或者计算我已经访问过的节点数量。
但是,我想把所有内容都放在一行上,并清除先前打印出来的字符。例如,在Python中,可以这样做:
for i in range(0,1000):
print "\r",i," "
然后计数,但保持一行输出,同时在给定迭代之前清除该行上打印的所有内容。我知道在lisp中有(format t “text” #\return),但似乎不起作用。是否有人知道我应该如何做到这一点? (我已经寻找了解决方案,但似乎找不到任何东西。)谢谢,安德鲁
编辑:我找到了解决方案。您需要添加指令(通用“〜A”有效),以便处理#\return:
(loop for i from 0 to 50000 do
(format t "~A~A " #\return i))
这将计数到50,000,您可以观看它完成。因此,它适用于您可能想要重复使用单个输出行的任何其他情况。