アリティ(関数の引数の数)
アリティとは、関数・演算・関係が受け取る引数またはオペランドの数である。論理学、数学、計算機科学で、式やシグネチャを分類・型付けするために用いられる。
概要
アリティは、演算、関数、または関係が取る引数の個数を表す。これは形式論理学、数学、プログラミングの各分野で用いられる概念である。論理学では述語や関係を分類し、数学では関数や代数的演算を記述し、計算機科学では関数シグネチャや呼出し規約の構成に役立つ。論理学、数学、計算機科学における扱いについては、論理学、数学、計算機科学を参照。
画像ギャラリー
1 画像一般的な用語と例
特定のアリティを示す名称がよく使われる。代表的な呼称には、次のものがある。
- 0項(アリティ0):定数値、またはパラメータを持たない関数。
- 単項(アリティ1):否定など、1個の引数を取る関数。
- 二項(アリティ2):加算や比較のような一般的な演算。
- 三項(アリティ3)以上:より一般的ではないが、一部の言語や論理体系で用いられる。
- 可変長:可変個の引数を受け取るもの(しばしばn項と表記される)。
数学および論理学における文脈
数学と論理学では、関係または関数のアリティは形式的シグネチャの一部である。アリティnの述語はn項述語と呼ばれることがあり、これはその述語が関係づける項の数を決める。代数的構造や形式言語では、シグネチャや型を定義する際に演算のアリティを記録する。混同を避けるため、アリティと、集合の濃度やグラフ理論における次数などの関連概念を区別することが重要である。
計算機科学とプログラミング
プログラミングでは、アリティは関数宣言に現れ、呼出しの意味論や型検査に影響する。固定アリティを強制する言語もあれば、可変長関数やデフォルト引数をサポートする言語もある。カリー化は、アリティnの関数を単項関数の連鎖へ変換する技法である。高階関数は、それぞれ固有のアリティを持つ関数を受け取ったり返したりできる。コンパイラや型システムは、呼出しの検証と型推論のためにアリティ情報を頻繁に利用する。
歴史、用法、留意点
アリティという概念の明示的な使用は、形式論理学と代数学が式の正確な構文記述を発展させるにつれて広がった。今日では、APIの設計、文法の指定、論理理論の定式化において、単純ながら不可欠な属性となっている。タプル、リスト、カリー化などによって引数のまとめ方を変えると、基礎となる計算を変えずに見かけ上のアリティが変化し得る点に注意が必要である。
参考文献
入門的な説明やより深い技術的解説については、形式言語、型理論、普遍代数学に関する資料を参照。分野横断的な一般的解説としては、数学および計算機科学の項目を参照。
関連項目
著者
AlegsaOnline.com アリティ(関数の引数の数) Leandro Alegsa
URL: https://ja.alegsaonline.com/art/5574