stringtranslate.com

Арити

В логике , математике и информатике арность ( / ˈ ær ɪ t i / ) — это числоаргументовилиоперандов,принимаемых функцией,операциейилиотношением.В математике арность также может называться рангом,[1][2],но это слово может иметь много других значений. В логике ифилософииарность также может называтьсяадичностьюистепенью.[3][4]Влингвистикеее обычно называютвалентностью.[5]

Примеры

В общем, функции или операторы с заданной арностью следуют соглашениям об именовании систем счисления на основе n , таких как двоичная и шестнадцатеричная . Латинский префикс сочетается с суффиксом -ary. Например:

Нулевой

Константу можно рассматривать как результат операции арности 0, называемой нулевой операцией .

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

Унарный

Примерами унарных операторов в математике и программировании являются унарные минус и плюс, операторы инкремента и декремента в языках в стиле C (не в логических языках), а также функции successor , factorial , reciprocal , floor , ceiling , Fractional part , sign , absolute value , square root (главный квадратный корень), complex conjugate (унарный от «единого» комплексного числа , который, однако, имеет две части на более низком уровне абстракции) и norm functions в математике. В программировании примерами унарных операторов являются операторы дополнения до двух , ссылки на адрес и логического НЕ.

Все функции в лямбда-исчислении и в некоторых функциональных языках программирования (особенно произошедших от ML ) технически являются унарными, но см. n-арные функции ниже.

По мнению Куайна , латинские дистрибутивы — singuli , bini , terni и т. д., поэтому термин «сингулярный» является правильным прилагательным, а не «унарный». [6] Абрахам Робинсон следует употреблению Куайна. [7]

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

Двоичный

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

Тройной

Язык программирования C и его различные потомки (включая C++ , C# , Java , Julia , Perl и другие) предоставляют тернарный условный оператор ?: . Первый операнд (условие) оценивается, и если он истинен, результатом всего выражения является значение второго операнда, в противном случае это значение третьего операнда.

В языке Python есть тернарное условное выражение, . В Elixir эквивалентом будет .x if C else yif(C, do: x, else: y)

Язык Forth также содержит тернарный оператор, */, который умножает первые два (одноячеечных) числа, делит на третье, причем промежуточным результатом является двуячеечное число. Это используется, когда промежуточный результат переполняет одну ячейку.

Калькулятор Unix dc имеет несколько тернарных операторов, например |, , которые извлекают три значения из стека и эффективно вычисляют с произвольной точностью .

Многие инструкции языка ассемблера ( RISC ) являются троичными (в отличие от инструкций, указанных только с двумя операндами в CISC); или более сложными, например , которые загружают ( MOV ) в регистр AX содержимое вычисляемой ячейки памяти, которая является суммой (скобки) регистров BX и CX .MOV %AX, (%BX, %CX)

н-арный

Среднее арифметическое n действительных чисел является n -арной функцией:

Аналогично, среднее геометрическое n положительных действительных чисел является n -арной функцией: Обратите внимание , что логарифм среднего геометрического является средним арифметическим логарифмов его n аргументов.

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

То же самое справедливо и для языков программирования, где функции, принимающие несколько аргументов, всегда можно определить как функции, принимающие один аргумент некоторого составного типа , например кортеж , или в языках с функциями более высокого порядка — с помощью каррирования .

Переменная арность

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

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

Латинские названия обычно используются для определенных арностей, в первую очередь основанных на латинских дистрибутивных числах, означающих «в группе n », хотя некоторые основаны на латинских количественных числительных или порядковых числительных . Например, 1-ary основан на количественном unus , а не на дистрибутивном singulī , которое привело бы к singley .

n - арный означает наличие n операндов (или параметров), но часто используется как синоним «полиадического».

Эти слова часто используются для описания чего-либо, связанного с этим числом (например, унденарные шахматы — вариант шахмат с доской 11×11 или Петиция о тысячелетии 1603 года).

Арность отношения ( или предиката ) — это размерность области в соответствующем декартовом произведении . (Таким образом, функция арности n имеет арность n +1, рассматриваемую как отношение.)

В компьютерном программировании часто существует синтаксическое различие между операторами и функциями ; синтаксические операторы обычно имеют арность 1, 2 или 3 ( тернарный оператор ?: также распространен). Функции сильно различаются по количеству аргументов, хотя большие числа могут стать громоздкими. Некоторые языки программирования также предлагают поддержку вариативных функций , т. е. функций, синтаксически принимающих переменное количество аргументов.

Смотрите также

Ссылки

  1. ^ Хазевинкель, Мишель (2001). Энциклопедия математики, Приложение III. Спрингер. п. 3. ISBN 978-1-4020-0198-7.
  2. ^ Шехтер, Эрик (1997). Справочник по анализу и его основам. Academic Press. стр. 356. ISBN 978-0-12-622760-4.
  3. ^ Детлефсен, Майкл; Маккарти, Дэвид Чарльз; Бэкон, Джон Б. (1999). Логика от А до Я. Routledge. стр. 7. ISBN 978-0-415-21375-2.
  4. ^ Коккиарелла, Нино Б.; Фройнд, Макс А. (2008). Модальная логика: Введение в ее синтаксис и семантику. Oxford University Press. стр. 121. ISBN 978-0-19-536658-7.
  5. ^ Кристал, Дэвид (2008). Словарь лингвистики и фонетики (6-е изд.). John Wiley & Sons. стр. 507. ISBN 978-1-405-15296-9.
  6. ^ Куайн, WVO (1940), Математическая логика , Кембридж, Массачусетс: Издательство Гарвардского университета, стр. 13
  7. ^ Робинсон, Абрахам (1966), Нестандартный анализ , Амстердам: Северная Голландия, стр. 19
  8. ^ Оливер, Алекс (2004). «Многоступенчатые предикаты». Mind . 113 (452): 609–681. doi :10.1093/mind/113.452.609.

Внешние ссылки

Монография доступна бесплатно онлайн: