Lispex поддерживает точные целые произвольной точности, сокращённые точные рациональные и конечные IEEE-754 real с канонической позиционной печатью.
Кратко
LISPEX
(list (/ 1 3) (+ 1 2.0) (number->string -0.0))Результат
OUTPUT
(1/3 3.0 "-0.0")Текущие гарантии
- Точная арифметика остаётся точной;
+ - * /становятся неточными при любом неточном операнде. Сравнения смешанных чисел выполняются точно. - Бесконечность и NaN не могут попасть в runtime; деление на ноль — E313, получение не конечного результата — E314.
- Конечные real печатаются кратчайшим round-trip способом, только позиционно, с обязательным
.0и сохранением-0.0.
Границы
- Комплексные числа и трансцендентные функции platform libm исключены.
- Правило заразности точности арифметики нельзя переносить на выбор и сравнение.