Emacs Lisp: 連想リスト
ドット対リストです。
ドット対のcarが指すデータが、cdrで取得する値を連想させるデータになっているリスト。
'((rose . red)(violet . blue)(lily . white))
連想リストを活用する関数「assq」を定義。
CommonLispにassocって名前の関数があったような気が・・・まぁ、気にしない。
(defun assq (key alist) (cond ((null alist) nil) ((eq key (car (car alist))) (car alist)) (t (assq key (cdr alist))))) (assq 'rose '((rose . red)(violet . blue)(lily . white))) ;; => (rose . red)