プログラミング言語の剰余演算子に惑う

いくつかのプログラミング言語を見ていると、算術演算子のうち四則演算の記号は、大抵の言語で同じだ。

演算 記号
加算 +
減算 -
乗算 *
除算 /

上記の記号は、COBOLのCOMPUTE文でも通用する。

その一方、剰余演算子あたりから若干怪しくなってくる。私の普段使いの言語にて%が用いられていることが多いため、他の言語でも%が使えると思いこんでしまうことが多く、思わぬところでダメだしをくらう。

自分が今まで触れたことのある言語にて、%以外を用いていたものは、こんな感じだった。

言語 剰余演算子
ActiveBasic Mod
Clojure modrem
COBOL(COMPUTE文) (なし)
Common Lisp modrem
Fortran mod(関数)
HSP \
OCaml mod
Prolog modrem
REXX //
Scheme modmod0moduloremainder
Smalltalk \\rem:
VBScript Mod
Visual Basic Mod

いくつかの言語では剰余(remainder)と法(modulo)が分かれているのが興味深い。

%の次に多いのがmod。BASIC・FortranPascalPrologStandard MLなどで使われていた影響だろうか、modを使う言語は多い。その次に、いくつかの言語にてremが使われている。後は、REXXSmalltalkのように独自の記号を採用している言語もある。

四則演算以外の算術演算子で最もよく使うのが剰余演算子であるためか、%mod以外の言語に遭遇した時は、なぜだか妙に感動したものだ。

累乗(べき乗)あたりになってくると、そもそも言語によっては演算子を持たないこともあるので、言語による演算子の違いに驚くことはない。だが、剰余演算子は大抵の言語に用意されていて、使う機会も意外とあるように思う。つまり、割とメジャーな演算子だと思うのだが、四則演算ほどには演算子の記号が統一されていないように思う。