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