我想用 iterate
迭代函数 g
。当我运行我的代码时,循环无限运行。是否有可能在满足条件时跳出循环?
类似于if g x > 100 then stop
。
我的代码:
f x = iterate g x
g x = 2 * x
最佳答案
只需翻转条件,takeWhile
就成立:
f x = takeWhile (<= 100) $ iterate g x
也可以免分:
f = takeWhile (<= 100) . iterate g
当累加器小于或等于 100 时,这将从 iterate
返回的无限列表中获取。
关于loops - 如何在满足条件时退出迭代循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47122615/