Memoization (functions caching store)
JS
S
JavaScriptMemoization is Caching for functions Requirement: the function must be pure / deterministic Libraries: https://github.com/caiogondim/fast-memoize.js
1// Factorial Example
2const factorial = num => {
3 // Cache control as a function property
4 if(!factorial.cache){
5 factorial.cache = {}
6 }
7 if(factorial.cache[num] !== undefined){
8 return factorial.cache[num];
9 }
10 factorial.cache[num] = num === 0 ? 1 : num * factorial(num - 1);
11 return factorial.cache[num];
12}
13
14// Iteration 1
15console.time('factorial');
16factorial(20);
17console.timeEnd('factorial');
18
19// Iteration 2
20console.time('factorial');
21factorial(20);
22console.timeEnd('factorial');
23
24// Iteration 3
25console.time('factorial');
26factorial(20);
27console.timeEnd('factorial');
28Created on 3/12/2019