現在、「Land of Lisp」を読んでいます。最近のコード サンプルの 1 つで、著者は次のように指定しました。
> (eq 'fooo 'FoOo)
T
シンボルが大文字と小文字を区別しないことを証明します。数ページ後、データモードが正式に導入されました。
しかし、私は次のことを本当に理解していません。eq
は関数なので、その名前も大文字と小文字を区別しません。したがって、私はこれを行うことができるはずです:
> (eq 'Eq 'EQ)
T
偉大な。それは期待どおりに機能しました。しかし、これをデータモードのリストに入れるとどうなるでしょうか? 心に留めておいてください、私は自分にとって新しいことを試しているだけです。
> (eq '(Eq) '(EQ))
NIL
> (eq '('Eq) '('EQ))
NIL
うーん。わかった?何故ですか?同じ記号を 2 つのリストに入れると、それらのリストは等しいと見なされると予想していました。
ここで質問: リストの内容が比較されるのではなく、リストの「オブジェクト」自体が比較されるということですか? 私は何が欠けていますか?