プログラミング言語SML#解説 3.7.1版
19.13 論理演算式 exp andalso exp および exp orelse exp
真理値型は以下のように予め定義されている.
datatype bool = false | true
通常データ構成子は大文字で始まる習慣があるが,falseとtrue は例外である.
bool型を持つ2つの式expとexpに対し て以下の構文が定義されている.
-
•
論理積:exp andalso exp
expの値を評価し,その結果がtrueであれば, expを評価し,その結果が式全体の結果となる. expの値がfalseであれば,falseが式の値である. この場合,expは評価されない.
-
•
論理和:exp orelse exp
expの値を評価し,その結果がfalseであれば, expを評価し,その結果が式全体の結果となる. expの値がtrueであれば,trueが式の値である. この場合,expは評価されない.
このような評価を実現するために,これら演算は関数ではなく構文とし て提供されている.
これら構文はいずれも左結合する. また,同一レベルの構文定義では,先に現れた構文の結合力は後に出現した構文より強い. 従って,
false andalso true orelse false
は(false andalso true) orelse falseと解釈され,評価結果の値はfalseとなる.
bool型の演算には,これら構文以外に関数が定義されている.
not : bool -> bool