loops - 如何在满足条件时退出迭代循环?

标签 loops haskell

我想用 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/

相关文章:

arrays - 在循环中为数组赋值

php - 在 while 循环内调用 PHP 函数

haskell - 如何在 Nix 中制作 Haskell 开发环境?

haskell - 如何比较两个 UTCTime 值并获得天数差异?

haskell - Haskell 中的并行和并发编程 - 异步是否可以从同步变为同步?

postgresql - 如何使用 postgresql simple (Haskell) 插入数组?

haskell - 将 Iso 提升到 Bifunctor 的第一个参数

c# - 循环遍历泛型类的子类

c# - 用循环处理一个列表,每次取100个元素,列表末尾自动小于100

php - Postgres - 批量运行查询?