typestar

Funciones anónimas en Elixir

fn crea valores función: una calculadora de propina, un aplica-dos-veces y una pasada a Enum.map.

# fn builds a function value; calling one takes a dot before the parens.
tip = fn total, pct -> Float.round(total * pct / 100, 2) end
IO.puts("tip on 48.60: #{tip.(48.60, 20)}")

# Functions travel like any other value.
apply_twice = fn f, x -> f.(f.(x)) end
IO.puts("folded twice: #{apply_twice.(fn s -> s <> s end, "ha")}")

double = fn n -> n * 2 end
IO.inspect(Enum.map([1, 2, 3], double), label: "doubled")

Cómo funciona

  1. fn total, pct -> ... end es un valor, y llamarlo lleva un punto: tip.(48.60, 20).
  2. apply_twice acepta una función y la llama sobre su propio resultado.
  3. Enum.map([1, 2, 3], double) le entrega la función duplicadora a una de orden superior.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
10
Caracteres a escribir
411
Tokens
115
Ritmo de tres estrellas
70 tpm

Al ritmo de tres estrellas de 70 tokens por minuto, este intento toma unos 99 segundos.

Escribe este fragmento

Paso 1 de 3 en Enum y pipes; paso 13 de 27 en Fundamentos del lenguaje.

← Anterior Siguiente →