私は、ボックスの寸法を読み取り、それらを最短から最長の長さに並べ替える (そして、これらの新しい長さのそれぞれを新しい変数として設定する) コードを含む Lisp プログラムに取り組んでいます。
ファイルをインタープリターにロードしようとすると、次のエラーが発生します。
*** - EVAL: undefined function NEW-D1
new-d1
関数ではなく、特定のボックスの最短辺の長さの変数であるため、このエラーが発生する理由について混乱しています。
new-d1
が最初に初期化および設定されるコードは次のとおりです。
(defun get-box ()
(let ((d1 0) (d2 0) (d3 0) (new-d1 0) (new-d2 0) (new-d3 0))
(setf d1 (read))
(setf d2 (read))
(setf d3 (read))
(if (= d1 -1)
(exit)
(progn
(setq new-d1 (first (sort (list d1 d2 d3) #'<)))
(setq new-d2 (second (sort (list d1 d2 d3) #'<)))
(setq new-d3 (third (sort (list d1 d2 d3) #'<)))
(next-part-of-program (new-d1 new-d2 new-d3))))))
インタプリタが new-d1 が関数ではないことを認識し、関数として扱わないようにコードを変更するにはどうすればよいですか? 助けてくれてありがとう!
追加するために編集: プログラム コードの次の部分:
(defun next-part-of-program(d1 d2 d3)
(if (> d2 b)
(put-on-c-list(d1 c-list))
(if (> d2 a) and (< d2 c)
(put-on-b-list (d1 b-list))
(put-on-a-list (d1 a-list)))))
注: 後で追加するグローバル変数/リストとして、a-list、b-list、および c-list を初期化しました。
再度、感謝します!