递归算法优化:
function trampline(fun) {
while (fun && fun instanceof Function) {
fun = fun();
}
return fun
}
function sum(total, num) {
if (num >= 1) {
return sum.bind(null, total + num, num - 1)
} else {
return total;
}
}
trampline(sum(0, 3))
function sum(num, total) {
if (num >= 1) {
return sum(num - 1, total + num)
}
return total
}
sum(3, 0);