Арити
В логике , математике и информатике арность ( / ˈær ɪ t i / ) — это количество аргументов или операндов, принимаемых функцией , операцией или отношением . В математике арность также можно назвать рангом. [1] [2] но это слово может иметь много других значений. В логике и философии арность можно также назвать адичностью и степенью . [3] [4] В лингвистике ее обычно называют валентностью . [5]
Примеры
[ редактировать ]В общем, функции или операторы с заданной арностью следуют соглашениям об именах n -основанных систем счисления , таких как двоичная и шестнадцатеричная . префикс Латинский сочетается с суффиксом -ary. Например:
- Нулевая функция не принимает аргументов.
- Пример:
- принимает Унарная функция один аргумент.
- Пример:
- Бинарная функция принимает два аргумента.
- Пример:
- Тернарная функция принимает три аргумента.
- Пример:
- n -арная функция принимает n аргументов.
- Пример:
Нуллари
[ редактировать ]Константу . можно рассматривать как результат операции арности 0, называемой операцией нулевой
Кроме того, вне функционального программирования функция без аргументов может быть осмысленной и не обязательно постоянной (из-за побочных эффектов ). Такие функции могут иметь некоторый скрытый ввод , например, глобальные переменные или состояние всей системы (время, свободная память и т. д.).
Унарный
[ редактировать ]Примеры унарных операторов в математике и программировании включают унарные операторы минус и плюс, операторы инкремента и декремента в языках C (не в логических языках), а также преемник , факториал , обратную величину , пол , потолок , дробную часть , знак , абсолютное значение , квадратный корень (главный квадратный корень), комплексно-сопряженное число (унарное из «одного» комплексного числа , которое, однако, состоит из двух частей на более низком уровне абстракции) и нормальные функции в математике. В программировании операторы дополнения до двух , ссылки на адрес и логические операторы НЕ являются примерами унарных операторов.
Все функции в лямбда-исчислении и в некоторых функциональных языках программирования (особенно потомках ML ) технически унарны, но см. n-арные ниже.
Согласно Куайну , латинскими дистрибутивами являются сингли , бини , терни и т. д., термин «сингулярный» является правильным прилагательным, а не «унарный». [6] Авраам Робинсон следует использованию Куайна. [7]
В философии прилагательное монадическое иногда используется для описания одноместного отношения, такого как «имеет квадратную форму», в отличие от двухместного отношения, такого как «есть сестра».
Двоичный
[ редактировать ]Большинство операторов, встречающихся в программировании и математике, имеют двоичную форму. Как для программирования, так и для математики к ним относятся оператор умножения , оператор основания, часто опускаемый оператор возведения в степень , оператор логарифма , оператор сложения и оператор деления . Логические предикаты, такие как OR , XOR , AND , IMP, обычно используются как бинарные операторы с двумя разными операндами. В архитектурах CISC обычно имеется два исходных операнда (и результат сохраняется в одном из них).
тройной
[ редактировать ]Язык программирования C и его различные потомки (включая C++ , C# , Java , Julia , Perl и другие) предоставляют тернарный условный оператор . ?:
. Вычисляется первый операнд (условие), и если он истинен, результатом всего выражения является значение второго операнда, в противном случае — значение третьего операнда.
В языке Python есть троичное условное выражение, x if C else y
. В Эликсире эквивалентом будет: if(C, do: x, else: y)
.
Язык Форт также содержит тернарный оператор, */
, который умножает первые два числа (одноячеечные) на третье, при этом промежуточный результат представляет собой двойное число ячеек. Это используется, когда промежуточный результат переполняет одну ячейку.
Unix Калькулятор постоянного тока имеет несколько тернарных операторов, таких как |
, который извлекает три значения из стека и эффективно вычисляет с произвольной точностью .
Многие ( RISC ) инструкции языка ассемблера являются троичными (в отличие от двух операндов, указанных в CISC); или выше, например MOV %AX, (%BX, %CX)
, который будет загружаться ( MOV ) в регистр AX — содержимое вычисленной ячейки памяти, которая представляет собой сумму (круглые скобки) регистров. ВХ и СХ .
н -и
[ редактировать ]С математической точки зрения функцию n аргументов всегда можно рассматривать как функцию одного аргумента, который является элементом некоторого пространства произведений . Однако для обозначений может быть удобно рассматривать n -арные функции, например, полилинейные отображения (которые не являются линейными отображениями в пространстве произведений, если n ≠ 1 ).
То же самое справедливо и для языков программирования, где функции, принимающие несколько аргументов, всегда можно определить как функции, принимающие один аргумент некоторого составного типа , например кортежа , или в языках с функциями более высокого порядка с помощью каррирования .
Различная арность
[ редактировать ]В информатике функция, принимающая переменное количество аргументов, называется вариативной . В логике и философии предикаты или отношения, принимающие переменное число аргументов, называются мультиградусными , анадическими или переменно-полиадическими. [8]
Терминология
[ редактировать ]Латинские имена обычно используются для определенных категорий, в основном на основе латинских распределительных чисел, означающих «в группе из n », хотя некоторые из них основаны на латинских кардинальных числах или порядковых числах . Например, 1-арность основана на кардинальном unus , а не на дистрибутивном единственном числе , что привело бы к единственному числу .
н -и | Арити (на латинском языке) | Адисити (на греческом языке) | Пример по математике | Пример в информатике |
---|---|---|---|---|
0-и | нулевой (от nullus ) | ниладический | константа | функция без аргументов, True , False |
1-и | унарный | монадический | аддитивный обратный | логический НЕ оператор |
2-и | двоичный | диадический | добавление | логические OR , XOR , AND операторы |
3-и | тройной | триадный | тройное произведение векторов | условный оператор |
4-и | четвертичный период | тетрадный | ||
5-и | пятеричный | пентадический | ||
6-и | шестерка | шестнадцатеричный | ||
7-и | семилетний | иждивенческий | ||
8-и | восьмилетний | огдоадический | ||
9-и | новенарий (альт. нонарий) | эннеадический | ||
10-и | денарий (альт. десятичный) | десятичный | ||
более 2-арного | многократный и многократный | полиадический | ||
меняющийся | вариативный | Я например, Σ | вариативная функция , сокращение |
n - ary означает наличие n операндов (или параметров), но часто используется как синоним слова «полиадический».
Эти слова часто используются для описания всего, что связано с этим числом (например, неденарные шахматы — это вариант шахмат с доской 11×11 или Тысячелетняя петиция 1603 года).
Арность отношения ( или предиката ) — это размерность области в соответствующем декартовом произведении . (Таким образом, функция арности n имеет арность n +1, рассматриваемую как отношение.)
В компьютерном программировании часто существует синтаксическое различие между операторами и функциями ; синтаксические операторы обычно имеют арность 1, 2 или 3 ( тернарный оператор ? также распространен :). Функции сильно различаются по количеству аргументов, хотя большие числа могут оказаться громоздкими. Некоторые языки программирования также предлагают поддержку вариативных функций , т. е. функций, синтаксически принимающих переменное количество аргументов.
См. также
[ редактировать ]- Логика родственников
- Бинарное отношение
- Тернарное отношение
- Теория отношений
- Подпись (логика)
- Параметр
- p -адическое число
- Мощность
- Валентность (лингвистика)
- n -арный код
- n -арная группа
- Прототип функции — объявление имени функции и сигнатуры типа, но не тела.
- Сигнатура типа — определяет входные и выходные данные для функции, подпрограммы или метода.
- Одномерные и многомерные
- Финитарий
Ссылки
[ редактировать ]- ^ Хазевинкель, Мишель (2001). Математическая энциклопедия, Приложение III . Спрингер. п. 3. ISBN 978-1-4020-0198-7 .
- ^ Шехтер, Эрик (1997). Справочник по анализу и его основам . Академическая пресса. п. 356. ИСБН 978-0-12-622760-4 .
- ^ Детлефсен, Майкл; Маккарти, Дэвид Чарльз; Бэкон, Джон Б. (1999). Логика от А до Я. Рутледж. п. 7 . ISBN 978-0-415-21375-2 .
- ^ Коккьярелла, Нино Б.; Фройнд, Макс А. (2008). Модальная логика: введение в ее синтаксис и семантику . Издательство Оксфордского университета. п. 121. ИСБН 978-0-19-536658-7 .
- ^ Кристал, Дэвид (2008). Словарь лингвистики и фонетики (6-е изд.). Джон Уайли и сыновья. п. 507. ИСБН 978-1-405-15296-9 .
- ^ Куайн, WVO (1940), Математическая логика , Кембридж, Массачусетс: Издательство Гарвардского университета, стр. 13
- ^ Робинсон, Абрахам (1966), Нестандартный анализ , Амстердам: Северная Голландия, стр. 19
- ^ Оливер, Алекс (2004). «Множественные предикаты». Разум . 113 (452): 609–681. дои : 10.1093/mind/113.452.609 .
Внешние ссылки
[ редактировать ]Монография доступна бесплатно в Интернете:
- Беррис, Стэнли Н. и HP Санкаппанавар, HP, 1981. Курс универсальной алгебры. Спрингер-Верлаг. ISBN 3-540-90578-2 . Особенно стр. 22–24.