読者です 読者をやめる 読者になる 読者になる

Common Lispの=、eq、eql、equalなど

LISP

先日のエントリに書いたCommon Lispでの等価判定なんですが、今読んでいる栗原正仁『対話によるCommon Lisp入門』にきれいに説明されていました。

関数名 備考
= 数の判定
eq シンボルの判定
eql アトムの判定
equal リストの判定

で、eq⊂eql⊂equalという関係にあるのだとか。eqで等しいものはeqlでもequalでも等しいと判定されるとのこと。

他にも、便利なpredicateの表もありました。転載。

関数名 判定対象となるデータ型
atom アトム
consp コンス
listp リスト
symbolp シンボル
numberp
integerp 整数
null ナル