by shigemk2

当面は技術的なことしか書かない

リスト遊び 4-6 連想リスト その1

前回
リスト遊び 4-5 集合 - by shigemk2

ドット対
リスト遊び 2-3 リストのリストと、ドット対表記 - by shigemk2
ドット対というと、cdrにnilが存在しないリストのことだったっけか。

そしてそのドット対のリストのことを連想リスト(association list)という。

連想リストの carcdr は…
'((rose . "red") (violet . "blue") (lily . "white"))
((rose . "red") (violet . "blue") (lily . "white"))

(car '((rose . "red") (violet . "blue") (lily . "white")))
(rose . "red")

(cdr '((rose . "red") (violet . "blue") (lily . "white")))
((violet . "blue") (lily . "white"))

;; ちなみに、ドット対単体の car と cdr は… 
(car '(rose . "red"))
rose

(cdr '(rose . "red"))
"red"

;; 単一のドット対から成る連想リストはこう書く
'((lily . "white"))
(car '((lily . "white")))
(lily . "white")
(car (car '((lily . "white"))))
lily

続く。

リスト遊び―Emacsで学ぶLispの世界 (ASCII SOFTWARE SCIENCE Language)

リスト遊び―Emacsで学ぶLispの世界 (ASCII SOFTWARE SCIENCE Language)