6
我有以下的Common Lisp代碼:什麼時候格式實際上在Common Lisp中打印?
(defun micro-read-eval-print()
(format t "Micro > ")
(let ((form (read-line)))))
當我運行它,我得到如下:
CL-USER> (micro-read-eval-print)
(m-quote a)
Micro > NIL
注意,我輸入了 「(M-報價一)」,而Lisp解釋器輸出「Micro> NIL」。
現在,我會預料這些事件會以相反的順序發生。自格式化語句首先打印出來以後,我預計會先打印出「Micro>」。爲什麼不先打印?我需要做些什麼才能確保它首先被打印?
對,實現可能使用緩衝的IO流,不需要在格式化之後或讀取之前強制輸出。因此,對於便攜式代碼,必須調用類似於強制輸出或完成輸出的內容。 – 2010-08-06 18:00:41