From adbc583ce8c97afe108a0105fc804e89103b39d7 Mon Sep 17 00:00:00 2001 From: Maxim Date: Wed, 22 May 2019 19:45:51 +0400 Subject: [PATCH] Create memoized.md --- memoized.md | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 memoized.md diff --git a/memoized.md b/memoized.md new file mode 100644 index 0000000..47bea66 --- /dev/null +++ b/memoized.md @@ -0,0 +1,38 @@ +# ECMAScript proposal: Add memoized prefix for functions +- [Motivation](#motivation) +- [High-level API](#high-level-api) + + ## Motivation + +To improve performance we use memoization. +Currently to create memoized functions we need to save some libraries, e.g. [memoize-one](https://github.com/alexreardon/memoize-one) + + ```js +import memoizeOne from 'memoize-one'; + +const add = (a, b) => a + b; +const memoizedAdd = memoizeOne(add); + +memoizedAdd(1, 2); // 3 + +memoizedAdd(1, 2); // 3 +// Add function is not executed: previous result is returned +``` + +Would be awesome to have this functionality in the JS. + + ## High-level API + + ```js +memoized function add(a, b) { + return a + b; +} + +memoized const add = (a, b) => a + b; +``` + +It's also can be a good idea to apply it to existing functions: +``` +const add = (a, b) => a + b; +const memoizedAdd = memoized add; +```