JavaScript Closure Memorization
来源:互联网 发布:什么牌子沙发好 知乎 编辑:程序博客网 时间:2024/06/14 00:52
js闭包记忆化编程学习
利用记忆化使递归次数大大减少。
以Fibonacci数列为例:
var fibonacci = function(){ var memo = [0, 1]; var fib = function(i){ var result = memo[i]; if(typeof result !== 'number'){ result = fib[i-1]+fib[i-2]; memo[i] = result; } return result; } return fib;}();for(var i = 0; i < 10; ++i){ console.log(fibonacci(i));}
进一步封装:
var memoizer = function(memo, fundamental){ var shell = funciton(n){ var result = memo[n]; if(typeof result !== 'number'){ result = fundamental(shell, n); memo[n] = result; } return result; }; return shell;}//斐波那契数列var fibonacci = memoizer([0,1], function(shell, n){ return shell(n - 1)+shell(n - 2);}) //阶乘var factorial = memoizer([1,1], function(shell, n){ return shell(n-1)*n; })
阅读全文
0 0
- JavaScript Closure Memorization
- JavaScript - Closure
- Javascript Closure
- javascript Closure
- JavaScript Closure
- Javascript Closure
- javascript closure
- JavaScript closure
- javascript closure
- [JavaScript] Closure In JavaScript
- 诡异的JavaScript Closure
- 诡异的JavaScript Closure
- Javascript Closure[1]
- Javascript Closure[2]
- javascript 之 Closure
- Javascript闭包(Closure)
- Javascript--闭包(closure)
- Javascript闭包(Closure)
- Java实现记事本
- JAVA编程思想--接口
- Spring AOP随笔(一)
- tf 深入Time和TF
- day171、正则表达式的定义及使用 2、Date类的用法 3、Calendar类的用法
- JavaScript Closure Memorization
- centos7 安装java和tomcat9
- 11.3课堂笔记和作业
- X11简介及Xlib参考手册地址
- ZOJ 3993 Safest Buildings(概率 数学)
- SQL Server2008 学习之(一) :入门知识
- 多线程
- python发送带附件邮件
- 洛谷 1197 星球大战 并查集 解题报告