Solución

@estouchedisindo·19/6/2026TypeScript
solution.tsTypeScript
type Fn = (n: number) => number;

function memoize(fn: Fn): Fn {
  // Crea una caché con Map o un objeto
  const cache = new Map<number, number>;
  // Retorna una función que consulta la caché antes de llamar a fn
  return (arg: number): number => {
    // Si ya tiene registrada esa llave (argumento) se
    // devuelve desde la caché
    if( cache.has(arg)) {
      return cache.get(arg);
    }
    // Si no, calcula resultado
    const result: number = fn(arg);
    // y lo registra en caché
    cache.set(arg, result);
    // Devuelve el resultado (solo la primera vez)
    return result;
  }
}

export function memoizeDouble(n: number): number {
  const double = memoize((x: number) => x * 2);
  return double(n);
}
0respuestas
Respuestas

Aún no hay respuestas

¡Sé el primero en responder!

Escribir un comentario

Recuerda ser amable. Estás comentando la solución de otra persona. Comparte tu perspectiva de forma constructiva y respetuosa.

Debes iniciar sesión para publicar un comentario.