#author("2019-07-30T15:09:22+00:00","default:sagasite","sagasite")
[[プログラミングの基礎]] > 第2章 基本的なデータ
*2.4 真偽値 [#t5b8099b]
真偽値は、「真」または「偽」を表す値です。
OCamlの
-真は「true」
-偽は「false」
で表します。
-真偽値の型は「bool」です。
**論理演算子 [#v665d147]
OCamlで定義されている論理演算は3つあります。
-「&&」は「かつ」
-「||」は「または」
-「not」は「否定」
を表します。
*** 論理演算子の優先順位 [#v647496e]
四則演算子では、乗除算が加減算よりも先という優先順位があります。
論理演算子では、
+「not」は「否定」
+「&&」は「かつ」
+「||」は「または」
の順で優先順位がついています。
**比較演算子 [#tc447e4e]
OCamlの比較演算子には、
-「=」等しいか
-「<>」等しくないか
-「>」より大きいか
-「<」より小さいか
-「>=」以上か
-「<=」以下か
があります。
同値を表す「=」の記号が特徴的ですね。
他のプログラミング言語では「==」(等価演算子)とか「===」(厳密等価演算子、同値演算子)とかの記号になってる場合がありますが、OCamlは「=」です。
***型の区別 [#ge7ce961]
OCamlの比較演算子は、すべてのデータに対して使うことができます。
しかし、比較する2つのデータが、違うデータ型の場合は比較することができません。(比較演算がエラーになる)
比較する2つのデータが、同じデータ型の場合に比較することができます。
***データの順番 [#t47548f4]
OCamlでは。同じ型であればすべてのデータについて順番が定められています。
一見すると比較できないような値に対しても予め順番が定められています。
(例)bool型
true > false
として定義されています。
(trueを1、falseを0とイメージした場合、true > falseは1 > 0のようになるので、何となく妥当なかんじがしますね?)
***比較演算子の使用例 [#iec2da8b]
OCaml version 4.07.1
# 2 < 3 ;;
- : bool = true
# true > false ;;
- : bool = true
# "z" > "a" ;;
- : bool = true
# 2 < 3.0 ;;
Error: This expression has type float but an expression was expected of type int