递归函数:
function sum(x, y) {
if (y > 0) {
return sum(x + 1, y - 1)
} else {
return x
}
}
sum(1, 10000)
蹦床函数优化:
function trampoline(f) {
while (f && f instanceof Function) {
f = f()
}
return f
}
function sum(x, y) {
if (y > 0) {
return sum.bind(null, x + 1, y - 1)
} else {
return x
}
}
trampoline(sum(1, 100000))
// 100001
本文介绍了递归函数的基本概念及其实现,并通过一个求和的例子展示了如何使用蹦床函数来优化递归调用,避免堆栈溢出。
1198

被折叠的 条评论
为什么被折叠?



