Previous: , Up: リスト   [Contents][Index]


10.4 連想リスト

連想リストは、値の1つの集合から他の集合への写像を表現するリスト である; その要素がコンスセルであるすべてのリストは連想リストである。

Function: assoc* item a-list &key :test :test-not :key

この関数は、そのcarが与えられたitemと(:testや :test-not、:keyの意味で、またはeqlでの比較で) マッチする要素を見つけるために、連想リストa-listを検索する。 マッチする要素がある場合はそれを、さもなければnilを戻す。 コンスセルではないa-listの要素は無視する(これは、Emacs Lispでの assqやassocの振る舞いに対応する; Common Lispの assocはnilを無視するが、a-listのそれ以外の非コンス 要素はエラーとみなす)。

Function: rassoc* item a-list &key :test :test-not :key

この関数は、そのcdrがitemとマッチする要素を検索する。 a-listが写像を表現する場合、これはitemへ逆写像を適用する。

Function: rassoc item a-list

この関数は、equalの:test引数を持つrassoc*のように 検索する。それは、Emacs Lispの標準のassoc関数と類似している。 Emacs Lisp標準assoc関数はCommon Lispの伝統よりもMacLispに 由来する。

assoc-ifやassoc-if-not、rassoc-if、 rassoc-if-not関数は同様に定義される。

連想リストを構築する2つの単純な関数は:

Function: acons key value alist

これは(cons (cons key value) alist)と 同等である。

Function: pairlis keys values &optional alist

これは (nconc (mapcar* 'cons keys values) alist)と 同等である。