Числовые процедуры охватывают точную арифметику, смешанную конечную real-арифметику, точное сравнение, целочисленное деление, округление, gcd/lcm, целую степень и exact integer sqrt.
Кратко
LISPEX
(call-with-values (lambda () (exact-integer-sqrt 20)) list)Результат
OUTPUT
(4 4)Текущие гарантии
+ - * /вариативны по контракту; сравнения требуют минимум два аргумента; целочисленные операции отвергают нецелые.floor/иtruncate/возвращают частное и остаток двумя значениями.exptпринимает точный целый показатель;exact-integer-sqrtвозвращает корень и остаток.
Числовые сигнатуры
| Сигнатура | Результат | Граница ошибки |
|---|---|---|
| (+ number ...) / (* number ...) | число; точное без неточных операндов | E312 тип; E314 не конечное |
| (/ number number ...) | точное рациональное или конечное real | E313 нулевой делитель; E314 не конечное |
| (floor/ integer integer) | два значения: частное, остаток | E312 нецелое; E313 нулевой делитель |
| (expt number exact-integer) | число с точностью основания | E313 точный ноль в отрицательной степени; E314 непредставимо |
| (exact-integer-sqrt точное неотрицательное целое) | два точных значения: корень, остаток | E312 домен |
Границы
- Общие трансцендентные функции и не конечные значения отсутствуют.