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での assqassocの振る舞いに対応する; Common Lispの assocnilを無視するが、a-listのそれ以外の非コンス 要素はエラーとみなす)。

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

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

Function: rassoc item a-list

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

assoc-ifassoc-if-notrassoc-ifrassoc-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)と 同等である。