---
name: pipe2
kind: function
lang: go
domain: core
version: "1.0.0"
purity: pure
signature: "func Pipe2[A, B, C any](f1 func(A) B, f2 func(B) C) func(A) C"
description: "Compone dos funciones de izquierda a derecha. pipe2(f, g)(x) = g(f(x))."
tags: [functional, composition, generic, pipe, pendiente-usar]
uses_functions: []
uses_types: []
returns: []
returns_optional: false
error_type: ""
imports: []
params:
  - name: f1
    desc: "primera función a aplicar (izquierda): A -> B"
  - name: f2
    desc: "segunda función a aplicar (derecha): B -> C"
output: "función compuesta que aplica f1 después f2, equivalente a f2(f1(x))"
tested: false
tests: []
test_file_path: ""
file_path: "functions/core/pipe2.go"
---

## Ejemplo

```go
double := func(x int) int { return x * 2 }
toString := func(x int) string { return fmt.Sprintf("%d", x) }
doubleStr := Pipe2(double, toString)
result := doubleStr(5) // "10"
```

## Notas

Funcion pura generica. Implementacion en devfactory/core.
