私はまだ Lisp を学んでいるので、この問題に遭遇したときは混乱しました。最初に印刷してから入力を読み取りたい単純な関数があります。
(defun ask()
(princ '?)
(read))
したがって、これを CLISP で実行すると、期待どおりの結果が表示され、? が出力され、同じ行に read 関数への入力を書き込むことができました。
これを SBCL で実行すると、うまくいきませんでした。最初に入力を求めてから、? を出力します。改行を作成していないことが原因である可能性があると考えましたが、同じ行の SBCL でこれを機能させる方法を本当に知りたかったのです。また、CLISP での結果が正しく、SBCL での結果が正しくないのはなぜでしょうか。よろしくお願いいたします。