これは本当の初心者の質問だと思いますが、ここで答えを見つけることができませんでした。私の問題:クラスのスロットの値を次のように設定したいと思います:
(setf (accessor class) value)
私はこれのために小さな関数を書きました:
(defun set-class-slots (class slot value)
(setf (slot class) value))
これを for ループで使用しています。このループでは、2 つのリスト (スロット (シンボルのリスト) と値 (数字のリスト)) を反復処理し、インスタンスの複数のスロットを値に設定したいと考えています。
(loop for slot in slots for value in values do
(set-class-slots <myclass> slot value)
)
私が得ているエラーは次のとおりです。
"フォーム ((setf スロット) #:|Store-Var-773597|#:g773598 の未定義の演算子 (setf スロット)。"
問題は、関数の setf が入力引数に指定された値を使用していないことだと思います。'slot' ですが、'slot' を演算子として読み取ります。
私はさまざまなこと、シンボル関数、ファンコールなどを試しましたが、何がうまくいかないのか本当に理解していないので、もう何をすべきかわかりません。
どんな助けでも大歓迎です。
ありがとう、マリーノエ