Haskell递归循环计数器
无论如何,我可以检查程序的递归次数。例如,我想在2次之后停止递归。哈斯凯尔有没有这样做的方法。是的,但是 停止递归通常是在达到某个最终状态时完成的,比如“我已经用完了要处理的数据”或“我已经达到了基本情况”。当我看到像“2次之后”这样任意的事情时,我想问你从哪里得到了2 然而,为了回答所提出的问题: 您需要向递归函数传递一个计数器,并在完成所需的循环数后退出。对于这样的情况,循环的数量不是函数外部的问题,通常是创建辅助函数来引入它Haskell递归循环计数器,haskell,Haskell,无论如何,我可以检查程序的递归次数。例如,我想在2次之后停止递归。哈斯凯尔有没有这样做的方法。是的,但是 停止递归通常是在达到某个最终状态时完成的,比如“我已经用完了要处理的数据”或“我已经达到了基本情况”。当我看到像“2次之后”这样任意的事情时,我想问你从哪里得到了2 然而,为了回答所提出的问题: 您需要向递归函数传递一个计数器,并在完成所需的循环数后退出。对于这样的情况,循环的数量不是函数外部的问题,通常是创建辅助函数来引入它 myFunction :: Value -> Value
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)
是的,但是
停止递归通常是在达到某个最终状态时完成的,比如“我已经用完了要处理的数据”或“我已经达到了基本情况”。当我看到像“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)
检查writer monad这听起来有点像你在haskell中寻找循环-你能解释一下你需要递归的原因吗?检查writer monad这听起来有点像你在haskell中寻找循环-你能解释一下你需要递归的原因吗?这里的元组有点奇怪,阿莫洛伊,是的,我认为你是对的。当我写这篇文章的时候,我脑海中有作者Monad,但是我认为这是比需要的更多的信息,并且从来没有把元组拿出来。这里的元组有点奇怪,而不是简单地拿两个参数。Amoloy,是的,我认为你是对的。当我写这篇文章的时候,我脑子里想的是作者Monad,但我认为这是比需要的更多的信息,而且从来没有把元组拿出来。