Ocaml で固定小数点反復を実装する方法を理解しようとしています。つまり、関数f
とが与えられた場合x
、最終的な値がどうf(f(f(x)...))
なるかを計算したいと思います。
たとえば、関数が で がx/2
の場合x=50
、答えは 0 になるはずです。
これまでのところ、私は
let rec computed_fixed_point eq f x =
if (x == f x) then
x
else
computed_fixed_point eq f (f x)
これは関数x/2
and x=50
(私に 0 を与えます) に対しては機能しますが、無限大または 0 以外の関数に対しては機能しないようです。
別のアドバイスをいただけますか?ありがとう!