javascript记忆函数用于存储计算的中间结果
/** * 记忆函数,存储计算的中间结果 * @param {[type]} memo 初始的数组 * @param {[type]} formula 计算函数 * @return {[type]} [description] */ var memoizer = function(memo, formula){ var recur = function(n){ var result = memo[n]; if(typeof result !== 'number'){ result = formula(recur, n); memo[n] = result; } return result; }; return recur; }; //计算斐波那契额数列 var fibonacci = memoizer([0,1], function(recur, n){ return recur(n-1) + recur(n-2); }); fibonacci(9); //计算阶乘 var factorial = memoizer([1,1], function(recur,n){ return n * recur(n-1); }); factorial(3);
本文出自 纳百川,转载时请注明出处及相应链接。
本文永久链接: https://www.bicner.com/1017.html
一条评论
高深,忘尘莫及!