我对 Ocaml 比较陌生,我认为我正确理解了 Unfold 函数,但我只是看不到如何使用它制作斐波那契序列。难道我们不需要最后两个值的持有者变量,以便我们可以找到当前值吗?非常感谢所有帮助。我在下面添加了展开功能以供参考。
let rec unfold (f: 'seed -> ('a * 'seed)) (stop : 'b -> bool) (b :'seed) : 'a list =
if stop b then []
else
let x, b' = f b in
x :: (unfold f stop b')