Files
fn_registry/functions/core/memoize.md
egutierrez 5f4f1f7508 docs: params/output semántico en 506 funciones para composabilidad
Añade campos params y output al frontmatter YAML de las 506 funciones del registry.
Cada parámetro tiene descripción semántica (qué representa, unidades, rango típico)
y cada función describe qué produce su output. Permite a agentes razonar sobre
cadenas de composición (ej: prices → log_return → sharpe_ratio) sin leer código.
2026-04-05 18:45:16 +02:00

1.3 KiB

name, kind, lang, domain, version, purity, signature, description, tags, uses_functions, uses_types, returns, returns_optional, error_type, imports, params, output, tested, tests, test_file_path, file_path
name kind lang domain version purity signature description tags uses_functions uses_types returns returns_optional error_type imports params output tested tests test_file_path file_path
memoize function go core 1.0.0 pure func Memoize[K comparable, V any](fn func(K) V) func(K) V Cachea resultados de una funcion pura. Retorna una nueva funcion que almacena en un mapa interno los resultados ya calculados, evitando recalculos para la misma clave.
cache
memoize
functional
generic
false
name desc
fn función pura a memorizar: K -> V; los resultados se cachean por clave
función memoizada que retorna resultados en caché para claves ya calculadas; no es thread-safe false
functions/core/memoize.go

Ejemplo

fib := Memoize(func(n int) int {
    if n <= 1 {
        return n
    }
    // nota: para recursion memoizada se necesita declarar la variable antes
    return n // simplificado
})
doubled := Memoize(func(x int) int { return x * 2 })
doubled(5) // calcula: 10
doubled(5) // cache hit: 10

Notas

Funcion pura generica (referencialmente transparente). El cache interno es un map[K]V sin sincronizacion, por lo que la funcion retornada es segura solo para uso en una sola goroutine. K debe ser comparable para usarse como clave del mapa.