論理学、数学、コンピュータサイエンスにおいて、アリティ(/ ˈ ær ɪ t i / )は、関数、演算、または関係によって取られる引数またはオペランドの数です。数学では、アリティはランクと呼ばれることもありますが、[1][2]この単語には他にも多くの意味があります。論理学と哲学アディシティや次数と呼ばれることもあります。[3][4]言語学では価数と呼ばれます。[5]
例
一般に、特定の引数を持つ関数または演算子は、2 進数や16 進数などのnベースの数値システムの命名規則に従います。ラテン語の接頭辞は -ary 接尾辞と組み合わされます。例:
- 引数なし関数は引数を取りません。
- 例:
- 単項関数は1つの引数を取ります。
- 例:
- バイナリ関数は2つの引数を取ります。
- 例:
- 三項関数は3 つの引数を取ります。
- 例:
- n項関数はn 個の引数を取ります。
- 例:
ヌラリー
定数は、ヌル演算と呼ばれる、引数 0 の演算の出力として扱うことができます。
また、関数型プログラミング以外では、引数のない関数は意味を持ち、必ずしも定数ではない場合があります(副作用のため)。このような関数には、グローバル変数やシステム全体の状態(時間、空きメモリなど) などの隠れた入力がある場合があります。
単項
数学およびプログラミングにおける単項演算子の例には、単項マイナスとプラス、Cスタイル言語 (論理言語ではない) の増分演算子と減分演算子、および数学における後続、階乗、逆数、切り捨て、天井、小数部、符号、絶対値、平方根(主平方根)、複素共役(「1」の複素数の単項ですが、抽象化の低いレベルでは 2 つの部分があります)、およびノルム関数があります。プログラミングでは、2 の補数、アドレス参照、および論理 NOT演算子が単項演算子の例です。
ラムダ計算および一部の関数型プログラミング言語(特にMLから派生したもの) のすべての関数は技術的には単項ですが、以下の n 項を参照してください。
クワインによれば、ラテン語の分配詞はsinguli、bini、terniなどであり、「unary」ではなく「singulary」という用語が正しい形容詞である。[6] アブラハム・ロビンソンはクワインの用法に従っている。[7]
哲学では、形容詞monadic は、「姉妹である」などの 2 項関係ではなく、「正方形である」などの1 項関係を説明するために使用されることがあります。
バイナリ
プログラミングや数学で遭遇するほとんどの演算子は、 2 進形式です。プログラミングと数学の両方で、これらには、乗算演算子、基数演算子、省略されることの多い指数演算子、対数演算子、加算演算子、除算演算子が含まれます。OR 、XOR、AND、IMPなどの論理述語は、通常、2 つの異なるオペランドを持つ 2 進演算子として使用されます。CISCアーキテクチャでは、2 つのソース オペランドを持つ (そして結果をそのうちの 1 つに格納する) のが一般的です。
三元
コンピュータ プログラミング言語Cとそのさまざまな派生言語 ( C++、C#、Java、Julia、Perlなど)では、三項条件演算子 ?:が提供されています。最初のオペランド (条件) が評価され、それが true の場合は、式全体の結果が 2 番目のオペランドの値になり、そうでない場合は 3 番目のオペランドの値になります。
Python言語には三項条件式 があります。Elixir では、同等のものは になります。
x if C else yif(C, do: x, else: y)
Forth言語には、最初の 2 つの数値 (1 つのセル) を乗算し、3 番目の数値で割る三項演算子も含まれており*/、中間結果は 2 つのセルの数値になります。これは、中間結果が 1 つのセルから溢れてしまう場合に使用されます。
Unix のdc 計算機|には、スタックから 3 つの値をポップし、任意の精度で効率的に計算するなどの三項演算子がいくつかあります。
多くの ( RISC )アセンブリ言語命令は 3 項 ( CISC で指定される 2 つのオペランドのみとは対照的 ) またはそれ以上のものであり、これは ( MOV ) レジスタAXに、レジスタBXとCXの合計 (括弧内) である計算されたメモリ位置の内容をロードします。
MOV %AX, (%BX, %CX)
ん-ary
n個の実数の算術平均はn項関数です。
同様に、n個の正の実数の幾何平均はn項関数である。幾何平均の対数は、 n個の引数 の対数の算術平均である点に注意する。
数学的な観点から見ると、n 個の引数を持つ関数は、常に、ある積空間の要素である単一の引数を持つ関数として考えることができます。ただし、 n項関数、たとえば多重線型写像( n ≠ 1の場合は積空間上の線型写像ではない)を考慮すると表記上便利な場合があります。
同じことがプログラミング言語にも当てはまり、複数の引数を取る関数は常に、タプルなどの複合型の単一の引数を取る関数として定義できます。また、高階関数を持つ言語では、カリー化によって定義できます。
可変アリティ
コンピュータサイエンスでは、可変数の引数を受け入れる関数は可変引数と呼ばれます。論理学と哲学では、可変数の引数を受け入れる述語または関係は、多段、アナディック、または可変多項式と呼ばれます。[8]
用語
ラテン語由来の名前は、主に「 nのグループ」を意味するラテン語の分配数に基づいて特定の項を表すのによく使用されますが、一部はラテン語の基数または序数に基づいています。たとえば、1 項は、単数になる分配法則singulīではなく、基数unusに基づいています。
n進法はn個のオペランド (またはパラメータ)を持つことを意味しますが、多くの場合、「多項式」の同義語として使用されます。
これらの単語は、その数字に関連するものを説明するためによく使用されます (例: アンデナリー チェスは11×11 のボードを持つチェスのバリエーションであり、1603 年の 千年紀請願書)。
関係(または述語)のアリティは、対応する直積内のドメインの次元です。 (したがって、アリティnの関数では、アリティn +1 が関係として扱われます。)
コンピュータ プログラミングでは、演算子と関数の間に構文上の区別がよくあります。構文上の演算子は通常、引数が 1、2、または 3 です (三項演算子?:もよく使用されます)。関数の引数の数はさまざまですが、数が多すぎると扱いにくくなることがあります。一部のプログラミング言語では、可変長関数(構文的に可変個の引数を受け入れる関数) もサポートされています。
参照
参考文献
- ^ ヘイズウィンケル、ミシェル(2001)。数学百科事典、補遺 III。スプリンガー。 p. 3.ISBN 978-1-4020-0198-7。
- ^シェクター 、エリック(1997)。分析とその基礎ハンドブック。アカデミックプレス。p.356。ISBN 978-0-12-622760-4。
- ^ デトレフセン、マイケル; マッカーティ、デイビッド・チャールズ; ベーコン、ジョン・B. (1999)。『論理学 A から Z』。ラウトレッジ。p. 7。ISBN 978-0-415-21375-2。
- ^ Cocchiarella, Nino B.; Freund, Max A. (2008). 様相論理: 構文と意味論入門. Oxford University Press. p. 121. ISBN 978-0-19-536658-7。
- ^ クリスタル、デイビッド (2008)。言語学と音声学の辞典(第6版)。ジョン・ワイリー&サンズ。p.507。ISBN 978-1-405-15296-9。
- ^ クワイン、WVO(1940)、数学的論理、マサチューセッツ州ケンブリッジ:ハーバード大学出版局、p. 13
- ^ ロビンソン、アブラハム(1966)、非標準分析、アムステルダム:北ホラント、p. 19
- ^ Oliver, Alex (2004). 「多段階述語」. Mind . 113 (452): 609–681. doi :10.1093/mind/113.452.609.
外部リンク
無料でオンラインで入手可能なモノグラフ:
- Burris, Stanley N.、および HP Sankappanavar、HP、1981。「普遍代数の講座」。Springer -Verlag。ISBN 3-540-90578-2。特に pp. 22–24。
