arity: 最近知った英単語
あるプログラミング言語の本を読んでいたら、arityという(私には)見慣れない単語を目にしました。
Operators can be categorized based on the number of operands they expect (their arity).
―David Flanagan, JavaScript: The Definitive Guide, 6th Ed.
意味は、本文にもあるとおり「期待するオペランドの数」ということなんですが、それをなぜarityと呼ぶのか分からず、頭の中がクエスチョン・マークでいっぱいに。が、それは続きを読んですぐに解消しました。つまり、単項演算子はunary operator、二項演算子はbinary operator、三項演算子はternary operatorなので、この-aryの状態(-ty)ということでarityなんですね。なるほどー。
しかし、unaryやbinaryは馴染みがあっても、ternaryというのはあんまり聞きません。これ、4個以上になるとどうなるのかと思って辞書を引いてみると、こんな感じ。
- 1: unary
- 2: binary
- 3: ternary
- 4: quaternary
- 5: quinary
- 6: senary
- 7: septenary
- 8: octonary
- 9: nonary
- 10: denary
そういえば、ternaryに似た単語にtertiaryというのがありますよね。tertiary industry(第三次産業)とか。こちらはprimary、secondary、tertiaryの系列ですが、この続きも調べてみると――。
- 1: primary
- 2: secondary
- 3: tertiary
- 4: quaternary
- 5: quinary
- 6: senary
- 7: septenary
- 8: octonary
- 9: nonary
- 10: denary
あれ!? 4以降が前と同じじゃないですか。なんじゃこりゃ!?
と思ってググってみると、English Language & Usageというサイトの “What follows next in the sequence “unary, binary, ternary…” ?” というページにちょっとした解説が見つかりました。ごくごく簡単に要約すると、「○番目」を表す英語の形容詞には2系列あって――、
-
ひとつは「ラテン語の序数(primus、secundus、tertius、quartus、quintus…) + 階級や序列を表す接尾辞-arius」から来た「primary、secondary、tertiary、(quartary)、(quintary)…」系列で、「序列の中の○番目」をあらわす
-
もうひとつは「ラテン語の配分詞(「○個ずつ」的なsinguli、bini、terni、quaterni、quini)… + 同接尾辞-arius」から来た「(single)、binary、ternary、quaternary、quinary…」系列で、「○個からなる」とか「○個に関係のある」という意味をあらわす
――だったのが、両者の意味が似通っていたために混同されて、4以降は配分詞の方が使われるようになったのではないか、とのこと。なお、unaryには対応するラテン語バージョンが無くて、unus(数詞の1)から英語側で新たに作られたもの、またnonaryもホントはnovenaryになるはずなのにちょっとヘン、とのことです。そういえば、英語版のWikipediaにArityというページがあって、ここでは8番目がoctaryとなっているんですが、手元の辞書にはこの形は載ってなくて、octonaryしかないんですよね。どっちみち、4以上は普通に使われる単語ではないので、いろんな人がいろんなことを言ってるのかもしれません。