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
使えないのは古代語としか言いようがない.))での仕事を割り振られたりしてるんだが,例えばPythonやLua(こちらは前任者が資産を残していった言語)にはC言語的な論理演算子 &&
, ||
, !
が無く,それぞれ英語の and
, or
, not
じゃないとダメ.Rubyは(演算子としての優先順位を除けば)どちらも差が無く好きな方を使える.まぁそんなんで,色々あると混乱するよねーという話.
まぁOcamlは一応C言語系の &&
とかに統一することになってて,or
はdeprecatedなのだった.
しかし !
は無くて(と言うか参照で)論理否定はモジュール Pervasive
で定義された関数 not
なのよねー.