Memoization ਇੱਕ ਫੰਕਸ਼ਨ ਦੇ ਨਤੀਜਿਆਂ ਨੂੰ ਇਸ ਦੀਆਂ arguments ਨਾਲ keyed ਕਰਕੇ cache ਕਰਦਾ ਹੈ, ਇਸਲਈ ਉਹੀ inputs ਦੇ ਨਾਲ ਦੁਹਰਾਈ ਕਾਲ ਤੁਰੰਤ cached ਨਤੀਜਾ ਵਾਪਸ ਕਰਦੀ ਹੈ ਬਜਾਏ ਮੁੜ ਗਣਨਾ ਕਰਨ ਦੇ। ਇਹ memory ਨੂੰ speed ਲਈ ਬਦਲਦਾ ਹੈ ਅਤੇ ਸਿਰਫ pure ਫੰਕਸ਼ਨਾਂ ਲਈ ਕਾਮ ਕਰਦਾ ਹੈ (ਉਹੀ input → ਉਹੀ output, ਕੋਈ side effects ਨਹੀਂ)।
ਇੱਕ generic memoize wrapper
js
() {
cache = ();
{
key = .(args);
(cache.(key)) {
cache.(key);
}
result = (...args);
cache.(key, result);
result;
};
}
= n => { n * n; };
fastSquare = (slowSquare);
();
();
