連想リストは、値の1つの集合から他の集合への写像を表現するリスト である; その要素がコンスセルであるすべてのリストは連想リストである。
この関数は、そのcar
が与えられたitemと(:test
や
:test-not
、:key
の意味で、またはeql
での比較で)
マッチする要素を見つけるために、連想リストa-listを検索する。
マッチする要素がある場合はそれを、さもなければnil
を戻す。
コンスセルではないa-listの要素は無視する(これは、Emacs Lispでの
assq
やassoc
の振る舞いに対応する; Common Lispの
assoc
はnil
を無視するが、a-listのそれ以外の非コンス
要素はエラーとみなす)。
この関数は、そのcdr
がitemとマッチする要素を検索する。
a-listが写像を表現する場合、これはitemへ逆写像を適用する。
この関数は、equal
の:test
引数を持つrassoc*
のように
検索する。それは、Emacs Lispの標準のassoc
関数と類似している。
Emacs Lisp標準assoc
関数はCommon Lispの伝統よりもMacLispに
由来する。
assoc-if
やassoc-if-not
、rassoc-if
、
rassoc-if-not
関数は同様に定義される。
連想リストを構築する2つの単純な関数は:
これは(cons (cons key value) alist)
と
同等である。
これは
(nconc (mapcar* 'cons keys values) alist)
と
同等である。