Ich verstehe nicht, warum dieser Code sich in verschiedenen Implementierungen unterschiedlich verhält:
(format t "asdf")
(setq var (read))
In CLISP verhält es sich wie erwartet, mit der Ausgabe des Prompt gefolgt vom Lesen, aber in SBCL liest es zuerst und gibt dann aus. Ich habe ein wenig im Internet gelesen und es geändert:
(format t "asdf")
(force-output t)
(setq var (read))
Auch dies funktioniert einwandfrei in CLISP, aber in SBCL liest es immer noch zuerst und gibt dann aus. Ich habe sogar versucht, es in eine andere Funktion zu trennen:
(defun output (string)
(format t string)
(force-output t))
(output "asdf")
(setq var (read))
Und es liest immer noch zuerst und gibt dann aus. Verwende ich force-output
nicht richtig oder ist das nur eine Eigenart von SBCL?