##force-outputはありません。
#ただ、force-outputと似たようなことをするfinish-outputはあります。
#ありがとうございます。それと
#(defun make-cd (title artist rating ripped)
(list :title title :aritst artist :rating rating :ripped ripped))
make-cd
(defvar *db* nil)
*db*
(defun add-record (cd)
(push cd *db))
add-record
(defun prompt-read (prompt)
(format *query-io* "~a: "prompt)
(finish-output *query-io*)
(read-line *query-io*))
prompt-read
prompt-read
(defun prompt-for-cd ()
(make-cd
(prompt-read "title")
(prompt-read "artist")
(or (parse-integer (prompt-read "rating") :junk-allowed t) 0)
(y-or-n-p "ripped {y/n}: ")))
prompt-for-cd
prompt-for-cd
(defun add-cds ()
(loop (add-record (prompt-for-cd))
(if (not (y-or-n-p "another? {y/n}: ")) (return))))
add-cds
(add-cds) このようなコードを実行すると eofに達してしまうのですがなんででしょう
#add-recordの中で *db* じゃなく *db を参照してるけどそれは関係ないのかな
#それ以外は、Allegro CLで実行すると正常に動作するみたいだけど。
#xyzzy だと *query-io* が使えない(?)です。prompt-read の代わりに read-string がそのまま使えます。
#ありがとうございます。すごく助かりました。