|
|
1
4
递归函数aux将其结果收集到一个额外的参数acc中(如acc umulator)。当你达到你的最终状态时,把累积的结果吐出来。我已经在另一个函数中包装了tail recursive helper函数,因此函数签名保持不变。
我给你和我的版本计时,生成2000个素数。我的版本快了16%,但仍然相当慢。为了生成素数,我喜欢使用命令式数组。不是很实用,但是很快。 |
|
|
2
3
另一种方法是使用额外的continuation参数使findprimestail递归。这种技术总是有效的。它将避免堆栈溢出,但可能不会使代码更快。 另外,我把你的nextPrime函数更接近我使用的样式。
|
|
|
3
3
为什么不干脆写:
|
|
|
4
2
我描述了一个快速的任意大小的埃拉托斯烯筛#
here
它的成果积累成了一个不断增长的过程
|
|
|
5
2
考虑一下count函数的一个简单实现,它将创建一个整数列表,从某个整数开始倒计时
然后,将这个参数化函数重构为一个专门的表示。注意函数
|
|
|
Luiz Miranda · 尾递归pow-Erlang 8 年前 |
|
|
Srinivas · Scala中的尾部递归 9 年前 |
|
|
madtyn · Python:有可能使这个尾部递归阶乘更快吗? 9 年前 |
|
|
clay · Scala中的尾部递归findNextAndTail 9 年前 |
|
|
Sanitiy · 如何在调用另一个函数后强制函数退出? 9 年前 |
|
|
Lorinc Nyitrai · Lua-将协程递归重写为尾部调用递归 9 年前 |
|
|
Alex · 尾部递归调用(C primer加上书本示例) 10 年前 |
|
|
Thomas Ahle · 递归联合查找是否可以优化? 11 年前 |
|
|
beta Rob · 这个函数真的是尾部递归的吗? 13 年前 |