Ray's playground

 

Functions part2(Chapter 4 of JavaScript: The Good Parts)

Module
 1 var serial_maker = function () {
 2                 var prefix = '';
 3                 var seq = 0;
 4 
 5                 return {
 6                     set_prefix: function (p) {
 7                         prefix = String(p);
 8                     },
 9 
10                     set_seq: function (s) {
11                         seq = s;
12                     },
13                     gensym: function () {
14                         var result = prefix + seq;
15                         seq += 1;
16                         return result;
17                     }
18                 };
19             } ();
20 
21             var seqer = serial_maker;
22 
23             seqer.set_prefix ('Q');
24             seqer.set_seq (1000);
25             var unique = seqer.gensym();
26             alert(unique);

 

 

Memoization
 1 var fibonacci = function (  ) {
 2     var memo = [01];
 3     var fib = function (n) {
 4         var result = memo[n];
 5         if (typeof result !== 'number') {
 6             result = fib(n - 1+ fib(n - 2);
 7             memo[n] = result;
 8         }
 9         return result;
10     };
11     return fib;
12 }(  );
13 
14 
15 var fibonacci = memoizer([01], function (shell, n) {
16     return shell(n - 1+ shell(n - 2);
17 });
18 
19 var factorial = memoizer([11], function (shell, n) {
20     return n * shell(n - 1);
21 });

 

posted on 2010-07-09 22:42  Ray Z  阅读(182)  评论(0编辑  收藏  举报

导航