私はそれlet rec
が欲しいときに使われることを知っていrecursive
ます。
例えば、
let rec power i x = if i = 0 then 1.0 else x *. (power (i-1) x);;
わかりました。
しかし、これはどうですか?
let x y = y + y in x 2
?
rec
内部で使用する必要がありますか?
内部にあるので、それ自体をロードする必要があると思いますがx 2
、コンパイラーでは問題ないようです。
だから私はいつ使うべきでlet rec
、使うべきではないのですか?
また、違いは何ですか
let (-) x y = y - x in 1-2-3;;
と
let rec (-) x y = y - x in 1-2-3;;
それらは両方とも合法ですか?