Common Lisp で無限大または非数 (NAN) を表す実装に依存しない方法はありますか? double float で、正と負の両方の値を持つ必要があります。SBCL では、
(apropos "INFINITY")
含む
SB-EXT:DOUBLE-FLOAT-NEGATIVE-INFINITY (bound)
SB-EXT:DOUBLE-FLOAT-POSITIVE-INFINITY (bound)
しかし、すべての実装で利用できるようにする必要があります。私は、すべてのプラットフォームで実行され、無限と NAN の表現が必要な、作成するパッケージへの補遺があります。別のライブラリの関数でも十分です。
私はiee-floats
ロードされ、それは今私のライブラリの一部です. 数値が NaN かどうかを検出する関数と、数値が無限大かどうかを検出する関数があります。私は NaN をテストしていませんが、私の無限関数は倍精度浮動小数点数である必要があります。SBCLSB-EXT:DOUBLE-FLOAT-POSITIVE-INFINITY
は機能しますが、実装に依存しないようにする必要があります。