Cómo usar clojure.core.memoize para cachear resultados – Resuelto

clojure.core.memoize es una librería que permite cachear resultados de funciones, mejorando el rendimiento al evitar cálculos repetidos.

Cachear una función

Podemos cachear el resultado de una función utilizando memo-ize:

(def mi-funcion (memoize (fn [x] (Thread/sleep 1000) (* x x))))

Usar la función cacheada

El primer cálculo tarda, pero los siguientes serán mucho más rápidos:

(mi-funcion 5) ;; Primero tarda (mi-funcion 5) ;; Más rápido por el cache