by shigemk2

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

リスト遊び 5-6 eq と equal

前回
リスト遊び 5-5 等しいリスト* - by shigemk2

前回equiv* を作成したが、
equiv* に似たequal関数がある。

異なったアドレスを差しているのでeqはnilになる。
一方、equalではセルのアドレスに対して
等しいかどうかは比較しない。データ構造と型についてのみ
判別する。

(eq '(1 2 3) '(1 2 3))
nil
(equal '(1 2 3) '(1 2 3))
t
(equal '((1) 2 3) '((1) 2 3))
t

なお、eqやequalの違いについては、こちらのほうが詳しい。
Common Lispのイコール(eq eql equal equalp) - ありの日記

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

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