2016-10-31 聚沙 纯函数式编程 like Haskell 强制 curry 化(柯里化) Curry Haskell 1 2 3 4 5 6 7 8 const add = x => y => x + y // translate const add = function(x) { return function(y) { return x + y; } } 禁用 for 循环 斐波那契 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 // 以下两个版本均为低效实现方法 // 命令式用法 const fib = function(n) { if (n <= 1) return n; return fib(n-1) + fib(n-2); } // es6 const fibEsnext = n => n < 2 ? n : fib(n-1) + fib(n-2) // 高效一点的方式 const store = []; let fibCache = function(n) { } // 使用尾递归实现 function fibTail(n, a = 1, b = 1) { if (n === 0) return a return fibTail(n - 1, b, a + b) } Comments Please enable JavaScript to view the comments powered by Disqus.