Arity ( / Aer ɪ т я / ( слушать ) ) это число аргументов или операндов , принимаемых в функции или операции в логике , математике и информатике . В математике Арность также может быть названа ранг , [1] [2] , но это слово может иметь множество других значений в математике. В логике и философии это также называется адичностью и степенью . [3] [4] В лингвистике, его обычно называют валентностью . [5]
Примеры [ править ]
Термин «арность» редко используется в повседневной жизни. Например, вместо того, чтобы говорить «арность операции сложения равна 2» или «сложение является операцией арности 2», обычно говорят, что «сложение является бинарной операцией». В общем, именование функций или операторов с заданной арностью следует соглашению, аналогичному тому, которое используется для систем счисления на основе n , таких как двоичная и шестнадцатеричная . Один сочетает латинский префикс с окончанием -ary; Например:
- Функция с нулевым значением не принимает аргументов.
- Пример:
- Одноместная функция принимает один аргумент.
- Пример:
- Бинарная функция принимает два аргумента.
- Пример:
- Тройная функция принимает три аргумента.
- Пример:
- П -ичная функция принимает п аргументов.
- Пример:
Nullary [ править ]
Иногда полезно рассматривать константу как операцию с арностью 0 и, следовательно, называть ее нулевой .
Кроме того, в нефункциональном программировании функция без аргументов может быть значимой и не обязательно постоянной (из-за побочных эффектов ). Часто такие функции фактически имеют некоторые скрытые входные данные, которые могут быть глобальными переменными , включая все состояние системы (время, свободная память,…). Последние являются важными примерами, которые обычно также существуют в «чисто» функциональных языках программирования.
Унарный [ править ]
Примеры унарных операторов в математике и программировании включают унарные минус и плюс, операторы инкремента и декремента в языках C- стиля (не в логических языках), а также последующие , факториальные , обратные , пол , потолок , дробную часть , знак и т. Д. абсолютное значение , квадратный корень (главный квадратный корень), комплексно-сопряженное (унарное из «одного» комплексного числа, которое, однако, имеет две части на более низком уровне абстракции) и функции нормы в математике. В дополнение до двух, адресная ссылка и операторы логического НЕ являются примерами унарных операторов в математике и программировании.
Все функции в лямбда-исчислении и в некоторых языках функционального программирования (особенно тех, которые произошли от ML ) технически унарны, но см. N-арное ниже.
Согласно Куайну , латинскими дистрибутивами являются singuli, bini, terni и т. Д., Термин «сингулярный» является правильным прилагательным, а не «унарный». [6] Авраам Робинсон следует примеру Куайна. [7]
В философии прилагательное монадическое иногда используется для описания одноместного отношения, такого как «имеет квадратную форму», в отличие от двухместного отношения, такого как «является сестрой».
Двоичный [ править ]
Большинство операторов, встречающихся в программировании и математике, имеют двоичную форму. И для программирования, и для математики это может быть оператор умножения, оператор основания, часто опускаемый оператор возведения в степень, оператор логарифма, оператор сложения, оператор деления. Логические предикаты, такие как OR , XOR , AND , IMP , обычно используются как бинарные операторы с двумя разными операндами. В архитектурах CISC обычно используется два исходных операнда (и сохраняется результат в одном из них).
Ternary [ править ]
Обычными тернарными операциями, помимо общей функции в математике, являются сумматор и производящая, хотя могут подразумеваться и другие n-арные операции.
Язык компьютерного программирования C и его различные потомки (включая C ++ , C # , Java , Julia , Perl и другие) предоставляют тернарный оператор ?:
, также известный как условный оператор , принимающий три операнда. Оценивается первый операнд (условие), и если оно истинно, результатом всего выражения является значение второго операнда, в противном случае это значение третьего операнда. Язык Forth также содержит тернарный оператор,*/
, который умножает первые два (состоящие из одной ячейки) числа и делит на третье, при этом промежуточный результат представляет собой двойной номер ячейки. Это используется, когда промежуточный результат переполняет одну ячейку. В языке Python есть троичное условное выражение x if C else y
. В калькуляторе постоянного тока Unix есть несколько тернарных операторов, таких как |
, которые извлекают три значения из стека и эффективно вычисляют с произвольной точностью . Кроме того, многие инструкции языка ассемблера ( RISC ) являются троичными (в отличие от только двух операндов, указанных в CISC); или выше, например , который загрузит (MOV) в регистр AXMOV %AX, (%BX, %CX)
содержимое вычисляемой ячейки памяти, которая представляет собой сумму (скобки) регистров BX и CX .
n -ary [ править ]
С математической точки зрения функцию n аргументов всегда можно рассматривать как функцию одного аргумента, который является элементом некоторого пространства продукта . Однако для обозначений может быть удобно рассматривать n -арные функции, например, полилинейные отображения (которые не являются линейными отображениями в пространстве произведения, если n 1 ).
То же самое верно и для языков программирования, где функции, принимающие несколько аргументов, всегда могут быть определены как функции, принимающие один аргумент некоторого составного типа, такого как кортеж , или в языках с функциями высшего порядка путем каррирования .
Различная арность [ править ]
В информатике функция, принимающая переменное количество аргументов, называется вариативной . В логике и философии, предикаты или отношения , принимающие переменное число аргументов называются всесезонный , anadic или переменно полиадическим. [8]
Терминология [ править ]
Латинские имена обычно используются для определенных арностей, в основном на основе латинских распределительных чисел, означающих «в группе из n », хотя некоторые из них основаны на латинских кардинальных числах или порядковых числах . Например, 1-арное основано на кардинальном необычном , а не на распределительном сингули, которое привело бы к единственному числу .
х-арный | Arity (на основе латыни) | Adicity (на греческом) | Пример по математике | Пример в информатике |
---|---|---|---|---|
0-арный | Nullary (от nūllus ) | Ниладский | постоянная | Функция без аргументов, True, False |
1-арный | Унарный | Монадический | Противоположное число | Логический оператор НЕ |
2-арный | Двоичный | Диадический | Добавление | ИЛИ , исключающее ИЛИ , И |
3-арный | Тернарный | Триадический | Тройное произведение векторов | Условный оператор |
4-арный | Четвертичный | Тетрадич | Кватернион | |
5-летний | Пятеричный | Пентадический | Квантиль | |
6-арный | Senary | Шестнадцатеричный | ||
7-арный | Семеричный | Гебдомадический | ||
8-арный | Octonary | Огдоадический | ||
9-арный | Новенарий (альтернативный нонарный ) | Эннеадический | ||
10-летний | Denary (альтернативный decenary ) | Десятичный | ||
Более 2-х ар. | Мультикарный и мультикарный | Полиадический | ||
Различный | Вариадический | Сумма; например, | Вариативная функция , сокращение |
n - арный означает n операндов (или параметров), но часто используется как синоним слова «полиадический».
Эти слова часто используются для описания всего, что связано с этим числом (например, ундинарные шахматы - это вариант шахмат с доской 11 × 11, или Петиция Тысячелетия 1603 года).
Арность отношения (или предиката ) - это размерность области в соответствующем декартовом произведении . ( Таким образом, функция арности n имеет арность n +1, рассматриваемую как отношение.)
В компьютерном программировании часто существует синтаксическое различие между операторами и функциями ; синтаксические операторы обычно имеют арность 0, 1 или 2 ( также часто встречается тернарный оператор ? :). Функции сильно различаются по количеству аргументов, хотя большое количество может стать громоздким. Некоторые языки программирования также предлагают поддержку вариативных функций , т. Е. Функций , синтаксически принимающих переменное количество аргументов.
См. Также [ править ]
- Логика родственников
- Бинарное отношение
- Тернарное отношение
- Теория отношений
- Подпись (логика)
- Параметр
- p -адическое число
- Мощность
- Валентность
- n- мерный код
- n -арная группа
Ссылки [ править ]
- ^ Хазевинкель, Михель (2001). Энциклопедия математики, Приложение III . Springer. п. 3. ISBN 978-1-4020-0198-7.
- ^ Шехтер, Эрик (1997). Справочник по анализу и его основам . Академическая пресса. п. 356. ISBN. 978-0-12-622760-4.
- ^ Детлефсен, Майкл; Маккарти, Дэвид Чарльз; Бэкон, Джон Б. (1999). Логика от А до Я . Рутледж. п. 7 . ISBN 978-0-415-21375-2.
- ^ Cocchiarella, Nino B .; Фройнд, Макс А. (2008). Модальная логика: введение в ее синтаксис и семантику . Издательство Оксфордского университета. п. 121. ISBN. 978-0-19-536658-7.
- ^ Кристалл, Дэвид (2008). Словарь по лингвистике и фонетике (6-е изд.). Джон Вили и сыновья. п. 507. ISBN. 978-1-405-15296-9.
- ^ Куайн, WVO (1940), Математическая логика , Кембридж, Массачусетс: Издательство Гарвардского университета, стр. 13
- ^ Робинсон, Абрахам (1966), Нестандартный анализ , Амстердам: Северная Голландия, стр. 19
- ↑ Оливер, Алекс (2004). «Всесезонный прогноз». Разум . 113 (452): 609–681. DOI : 10,1093 / ум / 113.452.609 .
Внешние ссылки [ править ]
Посмотрите Приложение: Английские артикулы и особенности английского языка в Викисловаре, бесплатном словаре. |
Монография доступна бесплатно онлайн:
- Беррис, Стэнли Н., и HP Sankappanavar, HP, 1981. Курс универсальной алгебры. Springer-Verlag. ISBN 3-540-90578-2 . Особенно стр. 22–24.