Una línea y defp en Elixir
Dos formas de función: el cuerpo de una línea con do: y el ayudante privado que solo su módulo puede llamar.
defmodule Tides do
# A one-line body rides on the def itself with do:
def high?(feet), do: feet >= 9.5
def report(feet) do
IO.puts("#{feet} ft -- #{advice(feet)}")
end
# defp makes a helper invisible outside the module
defp advice(feet) do
if high?(feet), do: "stay off the causeway", else: "safe to cross"
end
end
Tides.report(11.2)
Tides.report(4.0)
Cómo funciona
def high?(feet), do: feet >= 9.5pone un cuerpo de una sola expresión en la misma línea del def.reportinterpola la lectura y le deja el veredicto aadvice.defp advicees privada: adentro del módulo es una función común; afuera no existe.
Palabras clave y builtins usados aquí
defdefmoduledefpdoendif
El intento, en números
- Líneas
- 16
- Caracteres a escribir
- 354
- Tokens
- 77
- Ritmo de tres estrellas
- 80 tpm
Al ritmo de tres estrellas de 80 tokens por minuto, este intento toma unos 58 segundos.
Paso 2 de 3 en Módulos y funciones; paso 2 de 27 en Fundamentos del lenguaje.