Введение

Количество аргументов, требуемых функцией

В логике, математике и информатике, арность (/audio=en us arity. ogg/'/ær//ᵻ//t//i/) — это число аргументов или операндов, принимаемых функцией, операцией или отношением. В математике арность также может называться рангом, но это слово может иметь множество других значений. В логике и философии арность также может называться адичностью и степенью. В лингвистике она обычно называется валентностью.

Ничто

С постоянной можно рассматривать как результат операции арности 0, называемой унарной операцией. Кроме того, вне функционального программирования функция без аргументов может быть осмысленной и не обязательно постоянной (из-за побочных эффектов). Такие функции могут иметь неявные входные данные, такие как глобальные переменные или всё состояние системы (время, доступная память и т.п.).

Унарный

Примеры унарных операторов в математике и программировании включают унарный минус и плюс, операторы инкремента и декремента в языках в стиле C (не в логических языках), а также функции преемника, факториала, обратной величины, взятия целой части (floor), взятия верхней целой части (ceiling), извлечения дробной части, определения знака, вычисления абсолютного значения, квадратного корня (главного квадратного корня), комплексного сопряжения (унарная операция над одним комплексным числом, которое, однако, имеет две части на более низком уровне абстракции) и вычисления нормы в математике. В программировании комплемент до двух, обращение к адресу и логическое отрицание (NOT) являются примерами унарных операторов. Все функции в лямбда-исчислении и в некоторых функциональных языках программирования (особенно производных от ML) технически унарны, но см. ниже. По мнению Куайна, латинские распределители – singuli, bini, terni и так далее – указывают на то, что термин "сингулярный" является правильным прилагательным, а не "унарный". Авраам Робинсон следует терминологии Куайна. В философии прилагательное "монадный" иногда используется для описания одноместного отношения, например, "имеет квадратную форму", в отличие от двухместного отношения, например, "является сестрой".

Бинарный

Большинство операторов, используемых в программировании и математике, являются бинарными. К ним относятся оператор умножения, оператор извлечения корня, часто опускаемый оператор возведения в степень, оператор логарифма, оператор сложения и оператор деления, как в программировании, так и в математике. Логические предикаты, такие как OR, XOR, AND, IMP, обычно используются как бинарные операторы с двумя различными операндами. В архитектурах CISC обычно используются два исходных операнда (при этом результат сохраняется в одном из них).

Трехмерный

Компьютерный язык программирования C и его различные потомки (включая C++, C#, Java, Julia, Perl и другие) предоставляют троичный условный оператор ? :. Первый операнд (условие) вычисляется, и если он истинный, результатом всего выражения является значение второго операнда, иначе – значение третьего операнда. Язык Python имеет троичное условное выражение, в Elixir эквивалентом будет. Язык Forth также содержит троичный оператор */, который умножает первые два числа (по одной ячейке), деля на третье, при этом промежуточный результат представляет собой число двойной ячейки. Это используется, когда промежуточный результат превышает размер одной ячейки. Калькулятор Unix dc имеет несколько троичных операторов, таких как |, который извлекает три значения из стека и эффективно вычисляет результат с произвольной точностью. Многие инструкции ассемблера (RISC) являются троичными (в отличие от двух операндов, используемых в CISC), или содержат больше операндов, например, MOV %AX, (%BX, %CX), которая загружает в регистр содержимое ячейки памяти, адрес которой вычисляется как сумма содержимого регистров %BX и %CX.

Не-я

С математической точки зрения, функцию от n аргументов всегда можно рассматривать как функцию одного аргумента, который является элементом некоторого произведения пространств. Однако для удобства записи может быть полезно рассматривать функции с n аргументами, например, мультилинейные отображения (которые не являются линейными отображениями на пространстве произведения, если n ≠ 1). То же самое справедливо и для языков программирования, где функции, принимающие несколько аргументов, всегда можно определить как функции, принимающие один аргумент составного типа, такого как кортеж, или, в языках с функциями высшего порядка, посредством каррирования.

Различающаяся аристократия

В информатике функция, принимающая переменное число аргументов, называется вариадической. В логике и философии предикаты или отношения, принимающие переменное число аргументов, называются мультиградами, анадическими или переменной полиадичностью.

Терминология

Латинизированные имена обычно используются для обозначения конкретных аритетов, в основном на основе латинских распределительных чисел, означающих "в группе из n", хотя некоторые основаны на латинских кардинальных или порядковых числах. Например, 1-арный (unary) основан на кардинальном *unus*, а не на распределительном *singulī*, что привело бы к *singulary*. n-арный (n ary) Аритет (на латинской основе) Адичность (на греческой основе) Пример в математике Пример в информатике 0-арный (0 ary) nullary (от *nūllus*) niladic константа функция без аргументов, True, False 1-арный (1 ary) unary monadic обратная аддитивная логический оператор NOT 2-арный (2 ary) binary dyadic сложение логический оператор OR, XOR, AND 3-арный (3 ary) ternary triadic тройное произведение векторов условный оператор 4-арный (4 ary) quaternary tetradic 5-арный (5 ary) quinary pentadic 6-арный (6 ary) senary hexadic 7-арный (7 ary) septenary hebdomadic 8-арный (8 ary) octonary ogdoadic 9-арный (9 ary) nonary (альтернатива: novenary) enneadic 10-арный (10 ary) denary (альтернатива: decenary) decadic более 2-арных (more than 2 ary) multary и multiary polyadic изменяющийся variadic сумма; например, Σ вариадическая функция, reduce

n-арный означает, что функция имеет n операндов (или параметров), но часто используется как синоним "полиадический". Эти слова часто используются для описания всего, что связано с этим числом (например, унденарные шахматы – вариант шахмат с доской 11×11, или Милленарная петиция 1603 года). Аритет отношения (или предиката) – это размерность области определения в соответствующем декартовом произведении. (Функция аритета n, таким образом, имеет аритет n+1, если рассматривается как отношение.) В компьютерном программировании часто существует синтаксическое различие между операторами и функциями; синтаксические операторы обычно имеют аритет 1, 2 или 3 (третичный оператор ? : также распространен). Функции сильно различаются по количеству аргументов, хотя большое количество может быть неудобным. Некоторые языки программирования также поддерживают вариадические функции, то есть функции, синтаксически принимающие переменное количество аргументов.