1

これは本当の初心者の質問だと思いますが、ここで答えを見つけることができませんでした。私の問題:クラスのスロットの値を次のように設定したいと思います:

(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' を演算子として読み取ります。

私はさまざまなこと、シンボル関数、ファンコールなどを試しましたが、何がうまくいかないのか本当に理解していないので、もう何をすべきかわかりません。

どんな助けでも大歓迎です。

ありがとう、マリーノエ

4

1 に答える 1