あるプログラミング言語の本を読んでいたら、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以上は普通に使われる単語ではないので、いろんな人がいろんなことを言ってるのかもしれません。