Common Lisp で「単一行」カウンター/プログレス バーを実装することに興味があります。派手なことは何もありません。次のようなものです。
=>
==>
===> ...など..
そして、最初からやり直してください。または、私が訪れたノードの数を数えることもできます。
しかし、これをすべて1行で行い、以前に印刷された文字をクリアしたい. たとえば、Python では次のようになります。
for i in range(0,1000):
print "\r",i," "
その後、これはカウントされますが、すべてを1行に保ち、特定の反復の前にその行に印刷されたすべてをクリアします。
私はLispに があることを知っていますが(format t "text" #\return)
、それはうまくいかないようです。
誰も私がこれを行う方法を知っていますか? (私は周りを見回しましたが、何も見つからないようです)。
ありがとう、
アンドリュー
編集:
解決策を見つけました。を処理するには、ディレクティブを追加する必要があります (汎用の " ~A
" が機能しました) #\return
。
(loop for i from 0 to 50000 do
(format t "~A~A " #\return i))
これは 50,000 までカウントされ、それが実行されるのを見ることができます。したがって、単一の出力行を再利用したい他の状況でも機能します。