---
name: compose2
kind: function
lang: go
domain: core
version: "1.0.0"
purity: pure
signature: "func Compose2[A, B, C any](f2 func(B) C, f1 func(A) B) func(A) C"
description: "Compone dos funciones de derecha a izquierda. compose2(g, f)(x) = g(f(x))."
tags: [functional, composition, generic, pendiente-usar]
uses_functions: []
uses_types: []
returns: []
returns_optional: false
error_type: ""
imports: []
params:
  - name: f2
    desc: "segunda función a aplicar (derecha): B -> C"
  - name: f1
    desc: "primera función a aplicar (izquierda): A -> B"
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/compose2.go"
---

## Ejemplo

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

## Notas

Funcion pura generica. Implementacion en devfactory/core.
