我试图弄清楚如何在 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
和x=50
(给我 0),但对于无穷大或非 0 的函数,它似乎不起作用。
另一个可以给我一些建议吗?谢谢!