---
name: pipeline
kind: function
lang: go
domain: core
version: "1.0.0"
purity: pure
signature: "func Pipeline[T any](fns ...func(T) T) func(T) T"
description: "Compone funciones T -> T en secuencia de izquierda a derecha. Pipeline(f, g, h)(x) equivale a h(g(f(x))). Sin funciones retorna la identidad."
tags: [pipeline, compose, functional, generic]
uses_functions: []
uses_types: []
returns: []
returns_optional: false
error_type: ""
imports: []
params:
  - name: fns
    desc: "funciones variádicas de tipo T -> T a componer en secuencia"
output: "función que aplica todas las funciones de izquierda a derecha; si no hay funciones, retorna la identidad"
tested: false
tests: []
test_file_path: ""
file_path: "functions/core/pipeline.go"
---

## Ejemplo

```go
transform := Pipeline(
    func(s string) string { return strings.TrimSpace(s) },
    func(s string) string { return strings.ToUpper(s) },
    func(s string) string { return "[" + s + "]" },
)
transform("  hello  ") // "[HELLO]"
```

## Notas

Funcion pura generica. Las funciones se aplican en orden de izquierda a derecha (no es composicion matematica tradicional). Si se pasa un slice vacio de funciones, la funcion retornada actua como identidad.
