typestar

El operador de captura en Elixir

Tres formas de escribir el atajo &, desde capturar una función con nombre hasta fragmentos en línea.

# & captures a named function as a value; &1 is the first argument.
names = ["ada", "grace", "edsger"]

IO.inspect(Enum.map(names, &String.capitalize/1), label: "guests")

# &(...) is shorthand for a small fn.
initials = Enum.map(names, &String.first/1)
IO.puts("initials: #{Enum.join(initials, ".")}")

shout = &(String.upcase(&1) <> "!")
IO.puts(shout.("last call"))

Cómo funciona

  1. &String.capitalize/1 convierte una función con nombre en un valor, por nombre y aridad.
  2. &String.first/1 mapea la lista de invitados a iniciales, unidas con puntos.
  3. &(String.upcase(&1) <> "!") es un cuerpo de función entero con &1 como argumento.

El intento, en números

Líneas
11
Caracteres a escribir
368
Tokens
103
Ritmo de tres estrellas
65 tpm

Al ritmo de tres estrellas de 65 tokens por minuto, este intento toma unos 95 segundos.

Escribe este fragmento

Paso 2 de 3 en Enum y pipes; paso 14 de 27 en Fundamentos del lenguaje.

← Anterior Siguiente →