読者です 読者をやめる 読者になる 読者になる

個人的自由ノート

ふと自分が気になった事を書いてます

プログラミング in OCaml

        OCaml version 4.03.0

# 0b1011;;
- : int = 11
# -0x1A3F;;
- : int = -6719
# 0o274;;
- : int = 188
# 0b1234;;
Error: Invalid literal 0b1234
# max_int;;
- : int = 4611686018427387903
# min_int;;
- : int = -4611686018427387904
# 107 mod 7;;
- : int = 2
# 30 mod -9;;
- : int = 3
# -74 mod 7;;
- : int = -4
# 3.1415;;
- : float = 3.1415
# 6.02E23;;
- : float = 6.02e+23
# 5.;;
- : float = 5.
# .5;;
Error: Syntax error
# 5. *. 5. *. 3.14;;
- : float = 78.5
# 4.2 + 900.4;;
Error: This expression has type float but an expression was expected of type
         int
# 1 +. 84.2;;
Error: This expression has type int but an expression was expected of type
         float
# 4 + int_of_float 84.2;;
- : int = 88
# float_of_int 1 +. 84.2;;
- : float = 85.2
# 0.1 +. 0.1 +. 0.1 +. 0.1 +. 0.1 +. 0.1 +. 0.1 +. 0.1 +. 0.1 +. 0.1;;
- : float = 0.999999999999999889
# max_float;;
- : float = 1.79769313486231571e+308
# min_float;;
- : float = 2.22507385850720138e-308
# 1e350;;
- : float = infinity
# -3e400;;
- : float = neg_infinity
# 2.0 /. 0.0;;
- : float = infinity
# 0.0 /. 0.0;;
- : float = nan
# sqrt(-1.);;
- : float = nan
# infinity +. neg_infinity;;
- : float = nan
# #quit;;

実数つまり浮動小数点数を計算する場合は、ドットをつけないといけません。演算子+の後に.をつけるという具合です。実数の計算は誤差がありますので、正確にプログラムを組まないと期待した動作にならないということのようです。

int_of_floatやfloat_of_int。Y_of_Xという形で、X型からY型に変換するという役割を持っています。例えばこの場合ですと、int_of_floatはfloat型からint型へと変換します。