System Class NUMBER
型number
は、数学の数を表現したオブジェクトを含みます。 型real
とcomplex
は number
のサブタイプであり疎の関係です。
関数=
は、数値としての同一性を確認します。 関数eql
は、その引数が両方とも数であったとき、 それらは両方とも同じ型と数値であることをテストします。 2つの数がeql
か=
で同一であったとしても、 eq
による同一である必要はありません。
Common Lispはいくつかの数学としての名前が違っている問題を抱えています。 数学では、real
(実数)の数の集合は、 伝統的にはcomplex
(複素数)の数の集合として定義されますが、 Common Lispの場合は、 型real
と型complex
は疎の関係にあります。 Common Lispでは、数学的な複素数を含む全ての型は、number
と呼ばれます。 これらの違いがある理由は、 歴史的な前例があること、 他の多くの一般的なコンピュータ言語との互換性、 時間的・空間的な効率の問題など、いろいろあります。