javascript被称为披着c语言外衣的lisp,从中可以隐隐闻出javascript语言的灵活,机动。在慢慢的学习使用javascript中,慢慢发现它虽然作为一门脚本解释型语言,虽没有java大刀的刀劲十足,但是也是足够的小巧,玩的好更能在一些程序开发上做到游刃有余,尤其是在现在大前端的前提下,javascript可以重写的地方貌似开始都要用javascript重写;
javascript这么灵活,写起高逼格代码更是松松的,今天就开始用递归实现某些功能来。
-
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
|
function tco(f) { var value; var active = false; var accumulated = []; return function accumulator() { accumulated.push(arguments); if (!active) { active = true; while (accumulated.length) { value = f.apply(this, accumulated.shift()); } active = false; return value; } } } var sum = tco(function(x, y) { if (y > 0) { return sum(x + 1, y - 1) } else { return x } }); sum(1, 10) sum(1, 100000)
|