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!