OCamlでfloatの符号の反転
OCamlではデータ型ごとに別の演算子が定義されているので(二項演算だけでなく単行演算も)他のプログラミング言語のようにfloat型の数値の符号を反転させるときもちょっと注意が必要
let x = 1.0;;
(* val x : float = 1. *)
let y = -x;;
(* Error: This expression has type float but an expression was expected of type *)
普通に-
をつけるだけだと上記のように怒られるので(-
はint型用の演算子)、
let x = 1.0;;
(* val x : float = 1. *)
let y = -.x;;
(* val y : float = -1. *)
-.
の演算子を利用してあげると符号の反転ができる。
let x = 1.0;;
(* val x : float = 1. *)
let y = -1.0 *. x;;
(* val y : float = -1. *)
また-1.0
を掛け算してあげてもOK!