Composición en F#
>> pega funciones en funciones nuevas, sin nombrar argumento.
// >> glues functions into new functions, no argument in sight.
let gramsOfKg kg = kg * 1000.0
let jars grams = grams / 340.0
// The composed pipeline is itself a value.
let jarsOfKg = gramsOfKg >> jars >> floor
printfn "Jars from 12.4 kg: %.0f" (jarsOfKg 12.4)
printfn "Jars from 30.0 kg: %.0f" (jarsOfKg 30.0)
// Composition and piping meet: build once, apply anywhere.
let describe = jarsOfKg >> sprintf "yields %.0f jars"
[8.5; 15.3] |> List.map describe |> List.iter (printfn "%s")
Cómo funciona
gramsOfKg >> jars >> floores un valor de función.- Los pipelines compuestos aplican donde quepa una función.
List.map describereusa la composición sobre una lista.
Palabras clave y builtins usados aquí
let
El intento, en números
- Líneas
- 13
- Caracteres a escribir
- 489
- Tokens
- 87
- Ritmo de tres estrellas
- 65 tpm
Al ritmo de tres estrellas de 65 tokens por minuto, este intento toma unos 80 segundos.
Paso 3 de 3 en Funciones; paso 6 de 27 en Fundamentos del lenguaje.