Hatena::ブログ(Diary)

Alone Like a Rhinoceros Horn

2008-06-04

cons, append, list

リストを組み立てる3つの関数 cons, append, list について、その違いを理解するため、同じ引数を与えてリストを組み立てた場合の結果を図示して比較してみた。

引数としては '(a b) '(c d) という2つのリストを考える。図示すると以下のとおり。下方向の矢印が car、右方向の矢印が cdr である。

f:id:h1mesuke:20090222172435j:image

cons

(cons '(a b) '(c d))((a b) c d)

f:id:h1mesuke:20090222172436j:image

append

(append '(a b) '(c d))(a b c d)

f:id:h1mesuke:20090222172437j:image

list

(cons '(a b) '(c d))((a b) (c d))

f:id:h1mesuke:20090222172438j:image