我有興趣在Common Lisp中實現「單行」計數器/進度條。沒有什麼特別的,只是這樣的: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))
這將算到50000,你可以看它做到這一點。所以,它可以用於任何其他可能需要重複使用單個輸出線的情況。
@wvxvw:我想他想打印一個回報,而不是換行。 –
@ andrewm921請發佈您的答案,接受它並指定您正在使用的lisp實施和平臺。 – acelent