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

一人 OCaml 勉強会 #2 文字や数値の変換

ocaml erlang

タプルとかパターンマッチやっていたのですが特に困ることがなかったのでエクササイズをやってみました。

float_of_int や int_of_float など整数から浮動小数点への変換。あとは文字から数値への変換。文字列から数値への変換。

# float_of_int 3 +. 2.5;;
- : float = 5.5
# int_of_float 0.7;;
- : int = 0
# if "11" > "100" then "foo" else "bar";;
- : string = "foo"
# char_of_int ((int_of_char 'A') + 20);;
- : char = 'U'
# int_of_string "0xff";;
- : int = 255
# 5.0 ** 2.0;;
- : float = 25.

Erlang では文字列は数字のリストなので少し特殊かも

> float(3) + 2.5.
5.5
> erlang:trunc(0.7).
0
> if "11" > "100" -> "foo"; true -> "bar" end.
"foo"
> $A + 20.
85
> erlang:list_to_integer("ff", 16).  
255
> math:pow(5.0,2.0).
25.0

追記: キャスト

コメントでキャストとは言わないよという突っ込みを頂いたのでタイトルを修正しました。キャストは甘く危険な香りがしないと駄目だそうです:-)

突っ込みありがとうございます!!

OCaml のキャストは Obj.magic を指すらしい ... そのうち出てくるのかな。