Lisp 循环时打印到屏幕

Lisp 循环时打印到屏幕,lisp,common-lisp,output-buffering,land-of-lisp,Lisp,Common Lisp,Output Buffering,Land Of Lisp,我有这个: (loop for i below x do (update-world) if (zerop (mod i 1000)) do (princ #\.)) 它正在工作,只是所有的princ调用都在最后一次到达。这里的想法是,它们是一个进度指示器,每1000次迭代就在屏幕上打印一个周期。这是来自LISP图书的土地,我想知道如果在一个循环中打印不是一个便携的期望吗?< /P> < P>在Prim.t/P>之后添加一

我有这个:

(loop for i below x
            do (update-world)
            if (zerop (mod i 1000))
            do (princ #\.))
它正在工作,只是所有的princ调用都在最后一次到达。这里的想法是,它们是一个进度指示器,每1000次迭代就在屏幕上打印一个周期。这是来自LISP图书的土地,我想知道如果在一个循环中打印不是一个便携的期望吗?< /P> < P>在Prim.t/P>之后添加一个完成输出。 在princ之后添加finish输出


输出可以缓冲。请参阅Lars的答案。可以缓冲可能重复的输出。参见Lars的答案。不过,完成输出的可能重复并不是唯一的选择。还有强制输出,如其中所述,我认为这个问题是重复的。不过,finish-output不是唯一的选项。还有力输出,我认为这个问题是重复的。