Ocamlの and と or

謎の挙動に関するメモを古いディレクトリから発掘した.2005-09-30 18:41... 学部3年の秋か(もう一々数えないと分からなくなってしまった).それこそISのコンパイラ演習やってた頃じゃなかったかな?
今も通用する内容のようだ.

$ rlwrap ocaml
        Objective Caml version 3.13.0+dev2 (2010-10-22)

# (10 / 3 = 2) or (10 / 3 = 3);;
- : bool = true
# (10 / 3 = 2) and (10 / 3 = 3);;
Characters 13-16:
  (10 / 3 = 2) and (10 / 3 = 3);;
               ^^^
Error: Syntax error
#

えっ
というもの.
今の職場ではちょっとPython((2.4.3... さすがに with 使えないのは古代語としか言いようがない.))での仕事を割り振られたりしてるんだが,例えばPythonLua(こちらは前任者が資産を残していった言語)にはC言語的な論理演算子 &&, ||, ! が無く,それぞれ英語の and, or, not じゃないとダメ.Rubyは(演算子としての優先順位を除けば)どちらも差が無く好きな方を使える.まぁそんなんで,色々あると混乱するよねーという話.
まぁOcamlは一応C言語系の && とかに統一することになってて,or はdeprecatedなのだった.

しかし ! は無くて(と言うか参照で)論理否定はモジュール Pervasive で定義された関数 not なのよねー.