Files
fn_registry/functions/core/map_concurrent.md
T
egutierrez 988e901066 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
map_concurrent function go core 1.0.0 impure func MapConcurrent[T any, U any](xs []T, fn func(T) U, workers int) []U Aplica una funcion a cada elemento de un slice usando un pool de goroutines como workers. Los resultados preservan el orden original del slice de entrada.
map
concurrent
parallel
generic
false error_go_core
name desc
xs slice de elementos a procesar
name desc
fn función a aplicar a cada elemento
name desc
workers número de goroutines concurrentes; se ajusta a max(1, min(workers, len(xs)))
slice de resultados en el mismo orden original que la entrada false
functions/core/map_concurrent.go

Ejemplo

squares := MapConcurrent([]int{1, 2, 3, 4, 5}, func(n int) int {
    return n * n
}, 3)
// squares = [1, 4, 9, 16, 25] (orden preservado)

Notas

Funcion impura generica que usa goroutines y sync.WaitGroup. Los workers se alimentan de un canal con indices, garantizando que cada resultado se escribe en su posicion correcta sin race conditions (cada goroutine escribe en un indice unico). Si workers <= 0 se usa 1. Si workers > len(xs) se ajusta a len(xs).