Memoization کسی function کے نتائج کو اس کے arguments کے مطابق cache کرتا ہے، تاکہ ایک جیسے inputs کے ساتھ بار بار calls دوبارہ حساب کیے بغیر فوری طور پر cached نتیجہ واپس کریں۔ یہ رفتار کے بدلے میموری کا سودا کرتا ہے اور صرف pure functions کے لیے کام کرتا ہے (ایک ہی input → ایک ہی output، کوئی side effects نہیں)۔
ایک عمومی memoize wrapper
js
() {
cache = ();
{
key = .(args);
(cache.(key)) {
cache.(key);
}
result = (...args);
cache.(key, result);
result;
};
}
= n => { n * n; };
fastSquare = (slowSquare);
();
();
