私は Practical Common LISP に取り組み始めており、最初の演習は単純なデータベースを作成することです。cygwin で GNU CLISP 2.48 (2009-07-28) を使用しています。
本と何度か比較したこのコードは、本が言うように出力を生成しません。
(defun make-cd (title artist rating ripped)
(list :title title :artist artist :rating rating :ripped))
(defvar *db* nil)
(defun add-record (cd) (push cd *db*))
(add-record (make-cd "Roses" "Kathy Mattea" 7 t))
(add-record (make-cd "Fly" "Dixie Chicks" 8 t))
(add-record (make-cd "Home" "Dixie Chicks" 9 t))
(defun dump-db ()
(dolist (cd *db*)
(format t "~{~a:~10t~a~%~}~%" cd)))
(dump-db)
私は得る
TITLE: Home
ARTIST: Dixie Chicks
RATING: 9
RIPPED:
*** - There are not enough arguments left for this format directive.
Current point in control string:
"~{~a:~10t~a~%~}~%"
|
format
トラブルシューティングを行うほど LISPを理解していません。この本には、データベース内のすべてのレコードのリストを取得する必要があると書かれています。何がうまくいかなかったのですか?