Песочница

Числовые процедуры

Числовые процедуры охватывают точную арифметику, смешанные операции с конечными вещественными числами, точное сравнение, целочисленное деление, округление, gcd/lcm, целую степень и точный целый квадратный корень.

Проверьте запуском

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 ...)точное рациональное или конечное вещественноеE313 нулевой делитель, E314 неконечное
(floor/ integer integer)два значения, частное и остатокE312 нецелое, E313 нулевой делитель
(expt number exact-integer)число с точностью основанияE313 точный ноль в отрицательной степени, E314 непредставимо
(exact-integer-sqrt точное неотрицательное целое)два точных значения, корень и остатокE312 домен

Частая ошибка

Общие трансцендентные функции и неконечные значения отсутствуют.

Куда дальше

Правила точности и заражения за этими сигнатурами разобраны в руководстве, а место семейства среди остальных показывает указатель.

Точные и неточные числа · Указатель процедур