Каждая из функций в этом разделе в качестве аргументов принимает числа. Применение какой-либо из них к нечисловому аргументу является ошибкой. Каждая из них работает со всеми типами чисел, автоматически приводя типы для различных аргументов, если не указано иное.
Данная функция возвращает сумму всех аргументов. Если аргументов не было, результатом является 0.
Функция - при использовании с одним аргументом возвращает отрицательное значение для этого аргумента.
Функция - при использовании с более чем одним аргументом вычитает из первого аргумента все остальные и возвращает результат. Например, (- 3 4 5) ⇒ -6.
Функция возвращает произведение всех аргументов. Если вызывается без аргументов, тогда возвращает 1.
Функция / при использовании с более чем одним аргументом производит деление первого аргумента на все остальные значения и возвращает полученный результат.
Ноль может использоваться только для первого аргумента.
Для одного аргумента / возвращает обратное значение. В таком случае ноль в первом аргументе недопустим.
Если математическое отношение двух целых чисел не является целым числом, / вернёт дробный тип. Например:
Для целочисленного деления используйте одну из функций floor, ceiling, truncate или round.
Если один из аргументов является числом с плавающей точкой, тогда применяются правила обработки чисел с плавающей точкой.
(1+ x) является тем же самым, что (+ x 1). (1- x) является тем же самым, что (- x 1). Следует отметить, что короткое имя может ввести в заблуждение: (1- x) не значит то же, что и 1 −x. ______________________
Заметка для реализации: Compiler writers are very strongly encouraged to ensure that (1+ x) and (+ x 1) compile into identical code, and similarly for (1- x) and (- x 1), to avoid pressure on a Lisp programmer to write possibly less clear code for the sake of efficiency. This can easily be done as a source-language transformation.
Значение обобщённой переменной place увеличивается (incf) или уменьшается (decf) на значение формы delta и затем присваивается переменной place. Результатом формы является присвоенное значение. Форма place может быть любой формой подходящей для setf. Если форма delta не указана, тогда число в place изменяется на 1. Например:
Результат (incf place delta) примерно эквивалентен
за исключением того, что в последнем случае place вычисляется дважды, тогда как incf гарантирует, что вычисление place будет выполнено только один раз. Более того, для некоторых форма place incf может быть эффективнее чем setf.
Функция возвращает комплексное сопряжение с числа number. Сопряжением некомплексного числа является само число. Для комплексного числа z,
Например,
Функция возвращает наибольший общий делитель всех аргументов, которые в свою очередь должны быть целыми числами. Результатом gcd всегда является неотрицательное целое число. Если передан только один параметр, то возвращается его абсолютное значение (модуль). Если ни один параметр не был передан, gcd возвращает 0. Для трёх и более аргументов,
Несколько примеров использования gcd:
Функция возвращает наименьшее общее кратное для аргументов, которые в свою очередь должны быть целыми числами. Результатом lcm всегда является неотрицательное целое число. Для двух аргументов, не являющихся нулями,
Если один или оба аргумента является нулём.
Для одного аргумента, lcm возвращает абсолютное значение этого аргумента (модуль). Для трёх и более аргументов,
Примеры использования:
lcm, вызванная без аргументов, возвращает 1.