Solución
solution.tsTypeScript
export function testMemoize(n: number): number {
function memoize(fn: (x: number) => number): (x: number) => number {
// Usa un Map o un objeto como cache en el closure
const fnResult = fn(n);
const cache = new Map<(x: number) => number, number>();
if( !cache.has(fn)) {
cache.set(fn, fnResult);
}
return () => cache.get(fn);
}
const tripleM = memoize((x) => x * 3);
tripleM(n); // primera llamada — ejecuta fn
return tripleM(n); // segunda — retorna desde cache
}0respuestas