8.
8.1 リスト処理関数
任意の長さのリストを作る。
> (make-list 3 :initial-element 'hoge)
(hoge hoge hoge)
:initial-elementが与えられていなければ,要素がnilとなる
> (make-list 4)
(nil nil nil nil)
8.3 Aリスト
''Aリスト(association list)'':連想リストともいう.
Aリストはいくつかのペアからなるリストで,ここのペアはコンス・データである.
((usa . washington)
(france . paris)
(japan . kyoto))
は3つのペアからなるAリスト.
ペアのcarをキー,残りをキーに付随したデータという.
- 指定されたキーを持つペアをAリストから呼び出す関数.(assoc)
>(setq cc ' ((usa . washington)
(france . paris)
(japan . kyoto)))
>(assoc ;france cc)
(france . paris)
Aリストに指定したキーを持つペアがなければnilを返す.
また,2つ以上同じキーを持つペアがあれば,最初のペアが返される.
>(assoc 'canada cc)
nil
>(setq cc1 (cons '(japan .tokyo) cc))
>(assoc 'japan cc1)
(JAPAN .TOKYO)
Aリストに情報を追加するのに便利な組み込み関数.
キー,データ,Aリストの3つを引数に取り,キーとデータをペアにしてAリストに追加する.
>(acons 'japan 'tokyo cc)
((JAPAN . TOKYO) (USA . WASHINGTON) (FRANCE . PARIS) (JAPAN . KYOTO))
キーのリストとデータのリストからAリストを作る.さらにAリストが与えられていれば,それに追加する.
> (pairlis '(uk japan) '(london tokyo) cc)
((JAPAN . TOKYO) (UK . LONDON) (USA . WASHINGTON) (FRANCE . PARIS)
(JAPAN . KYOTO))
リストの要素を書き換える。
出来上がっているリストの構造を変えるから,
便利っちゃ便利。危険っちゃ危険。
rplaca
セルのcar部を書き換える。
ルプラカ。
(rplaca x y)
xが指すセル(あるいはリスト)のcarをyに書き換える。
返り値はxのcarがyに書き換えられた値。
rplacd
セルのcdr部を書き換える。
ルプラクド。
(rplacd x y)
xが指すセル(あるいはリスト)のcdrをyに書き換える。
返り値はxのcdrがyに書き換えられた値。
> (setf x '(a b))
> (rplaca x 'aaa)
(aaa b)
> (rplacd x 'bbb))
(aaa . bbb)
> (setf x '(a b))
> (rplacd x '(bbb))
(a bbb)
最終更新:2011年09月21日 16:13