% 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
と呼ばれます。
これらの違いがある理由は、
歴史的な前例があること、
他の多くの一般的なコンピュータ言語との互換性、
時間的・空間的な効率の問題など、いろいろあります。