haskell - Haskell 递归循环计数器
问题描述
无论如何我可以检查程序的递归次数。例如,我想在 2 次后停止递归。无论如何在haskell中可以做到这一点。
解决方案
是的,有但是...
当达到某种最终状态时,通常会停止递归,例如“我已经用完了要处理的数据”或“我已经达到了基本情况”。当我看到像“2 次之后”这样随意的东西时,我想问一下你是从哪里想到 2 的。
但是,为了回答所提出的问题:
您需要将一个计数器传递给递归函数,并在完成所需的循环次数后退出。对于这种情况,周期数不是函数外部的问题,通常是创建一个辅助函数来引入它。
myFunction :: Value -> Value
myFunction init = recurse 2 init
where
recurse :: Int -> Value -> Value
recurse 0 result = result
recurse n intermediate = recurse (n-1) (someFun intermediate)
推荐阅读
- typescript - 为什么打字稿将特定字符串视为类属性中的字符串?
- python - 在神经风格转移代码中获取“NaN”
- javascript - 带有单个花括号表达式的 Vue v-bind
- java - RecyclerView:不同按钮的不同ViewType
- apache-spark - databricks 中的 Delta 湖 - 为现有存储创建表
- amazon-web-services - 试图让我的 lambda 访问 RDS 数据库(postgres),但是在创建数据库代理时,“RDS 数据库实例”为空
- python - 如何在 Numpy 对象中处理 Numpy 对象?
- javascript - Javascript。ECIES方案如何有效存储Secp256k1私钥
- android - 如何解决 OnClick 的问题?
- python - 有没有办法让 index() 为重复项返回不同的索引?