Арити
В логике , математике и информатике арность ( / ˈæ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.