Lispの構造体
Lispでも構造体が使える。以下のような実装になる。
> (defstruct test x y) TEST > (setf x (make-test :x 0 :y 0)) #S(TEST :X 0 :Y 0) > (test-x x) 0 > (test-y x) 0
構造体を作成すると、勝手に「make-構造体名」という関数が定義され、それを利用して構造体のオブジェクトを作成できる。
そして、「構造体名-要素名(?)」で、その構造体の個々の要素の値へアクセスできる。
要素の値を変更するには、以下のようにすればできる。
> (setf (test-x x) 5) 5 > x #S(TEST :X 5 :Y 0) > (setf (test-y x) 10) 10 > x #S(TEST :X 5 :Y 10)