先生から言われたことによると、ローカル変数の宣言には let を、グローバル変数の宣言には setf を使うべきです。
次のコードを実行してみました:
(let (state-list (problem-initial-state problem))
(print state-list))
そして私はNILを取得します。
ただし、次のことを試すと:
(setf state-list (problem-initial-state problem))
(print final-list)
目的の値 (問題の初期状態の問題の値) を取得します。
何故ですか?
PS: 初心者向けの質問で申し訳ありません。C のバックグラウンドを持っているため、LISP に慣れるのに苦労しています。