return page history
α-wwwiki
::
history/map_reduce/20130716-233816.txt
editor : alpha [83.158.235.93] 2013/07/16 23:38:16 _h1 map & reduce _p Using the "define" operator to build the functions "map" and "reduce" {pre 1) define and call the function square : °°{define square (x) return x*x }°° -> {define square (x) return x*x } °°{square 12}°° -> {square 12} 2) define and call the function serie °°{define serie (n) for (var str='', i=0; i< n; i++) str += i + ' '; return str; }°° -> {define serie (n) for (var str='', i=0; i< n; i++) str += i + ' '; return str; } °°{serie 11}°° -> {serie 11} 3) define and call the function map applying square to the previous serie °°{define map (func) for (var str='', i=1; i< arguments.length; i++) str += '{'+func+' '+arguments[i]+'}' + ' '; return str; }°° -> {define map (func) for (var str='', i=1; i< arguments.length; i++) str += '{'+func+' '+arguments[i]+'}' + ' '; return str; } °°{map square {serie 11}}°° -> {map square {serie 11}} 4) define and call the function reduce applying '+' to the previous serie °°{define reduce (func) var args = [].slice.call(arguments).slice(1).join(' '); return '{'+func+' '+args+'}'; }°° -> {define reduce (func) var args = [].slice.call(arguments).slice(1).join(' '); return '{'+func+' '+args+'}'; } °°{reduce + {map square {serie 11}}}°° -> {reduce + {map square {serie 11}}} } _h3 E : {{lambda () return Math.E}} {pre °°{define expK (n) function fac(n) { return (n< 1)? 1 : n*fac(n-1) } return 1/fac(n) }°° -> {define expK (n) function fac(n) { return (n< 1)? 1 : n*fac(n-1) } return 1/fac(n) } °°{reduce + {map expK {serie 1}}}°° -> {reduce + {map expK {serie 1}}} °°{reduce + {map expK {serie 2}}}°° -> {reduce + {map expK {serie 2}}} °°{reduce + {map expK {serie 3}}}°° -> {reduce + {map expK {serie 3}}} °°{reduce + {map expK {serie 4}}}°° -> {reduce + {map expK {serie 4}}} °°{reduce + {map expK {serie 5}}}°° -> {reduce + {map expK {serie 5}}} °°{reduce + {map expK {serie 6}}}°° -> {reduce + {map expK {serie 6}}} °°{reduce + {map expK {serie 7}}}°° -> {reduce + {map expK {serie 7}}} °°{reduce + {map expK {serie 8}}}°° -> {reduce + {map expK {serie 8}}} °°{reduce + {map expK {serie 9}}}°° -> {reduce + {map expK {serie 9}}} °°{reduce + {map expK {serie 10}}}°° -> {reduce + {map expK {serie 10}}} ... °°{reduce + {map expK {serie 18}}}°° -> {reduce + {map expK {serie 18}}} ... to be compared to the javascript Math value of E } _h3 links _ul http://jsmapreduce.com/