-2
ファイルから情報を読み取るプログラムを作成していますが、何らかの理由で情報を読み込もうとすると、カウント変数がインクリメントされません。変数がリスープループでインクリメントされていません
(defun fill-lib()
(with-open-file (s-stream "/Users/David/Desktop/CS/CS_408/LISP/Books.txt"
:direction :input)
(loop
(cond((> count 1) (return "Library filled")))
(setf (aref *lib* count)
(make-instance 'book :title (read s-stream)
:author (read s-stream)
:genre (read s-stream)))
(setq count (+ count 1)))))
私はループを適切に使用していないと感じていますが、私はそれをどのように修正できるかについて完全にはわかりません。
1)宣言されていない変数(countなど)は使用しないでください。コードを大まかに変更してください。 2)カウントに値が割り当てられていないとき、初めて( '> count 1 ')とは何でしょうか? 3) '(setq count(+ count 1))'ではなく 'incf'を使いたいでしょう。 4)エラーメッセージなどを表示していません。 「あなたのカウント変数が増分されていない」と考えているのはなぜですか?私のように、他のいくつかのエラーがあるように思えるかもしれません。おそらく(あなたのコードを実行しようとする前でも)いくつかのコンパイラ警告もあります。 –
として何ですか?私はあなたのコメントは何かが欠けていると思う –
私は変数の数を初期化していたことについて申し訳ありません:(setq count 0)私は何らかの理由で私のファイルの最初の行を読み取っているかもしれないと思われる。 – plzHelp