gpt4 book ai didi

recursion - 递归函数的惰性序列

转载 作者:行者123 更新时间:2023-12-04 06:31:37 25 4
gpt4 key购买 nike

抱歉,标题含糊不清,我想我只是不太了解我的问题,因此无法提出问题,但是这里是。我想编写一个递归函数,它需要一系列函数来评估,然后用它们的结果调用自己等等。递归在某个返回数字的函数处停止。

但是,我希望在递归 f 中的任何点计算的函数都包含在函数 s 中,该函数在第一次计算时返回一个初始值(比如 0,或另一个函数 i 的结果) , 后跟 f 的求值结果(以便下次求值时返回先前求值的结果,并计算下一个值)。目的是解耦递归,以便它可以在不引起 this 的情况下继续进行。 .

我想我是在要求一个懒惰的序列。这是一个管道,一端充满了对函数的评估,而另一端则是历史结果。

最佳答案

你的描述让我想起了reductions ?减少将执行减少并返回所有中间结果。

user> (reductions + (range 10))
(0 1 3 6 10 15 21 28 36 45)

此处(范围 10)创建 0 到 9 的 seq。Reductions 重复应用 +,传递 + 的前一个结果和序列中的下一项。返回所有中间结果。您可能会发现查看 source 很有帮助。的减少。

如果您需要为此构建一个测试(检查值),使用 if 在您的函数中很容易做到(尽管它不会停止遍历 seq)。如果您希望在条件为真时提前退出,那么您需要编写自己的循环/递归,而 amalloy 已经做得很好。

我不想这么说,但我怀疑这也可能是 State Monad 的情况,但 IANAMG(我不是 Monad Guy)。

关于recursion - 递归函数的惰性序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5349063/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com