> (defclass foo () ((a :accessor foo-a :initarg :a :initform 1) (b :accessor foo-b :initarg :b) (c :accessor foo-c :initform 3))) #<STANDARD-CLASS FOO 244020371> > (setq foo1 (make-instance 'foo :a 'one :b 'two)) #<FOO 36325624> > (slot-value foo1 'a) ONE > (foo-a foo1) ONE > (slot-value foo1 'b) TWO > (foo-b foo1) TWO > (slot-value foo1 'c) 3 > (foo-c foo1) 3 > (setf (slot-value foo1 'a) 'uno) UNO > (slot-value foo1 'a) UNO > (setf (foo-b foo1) 20) 20 > (slot-value foo1 'b) 20:accessorというのは,インスタンス変数へアクセスするための 関数名を指定するためのもので, :initformはインスタンス変数の初期値を与えるためのものです. :initargは,make-instanceの引数として初期値を与える場合の キーワードです.