Un valor constante se define con name = expression,
donde en Elm todo, salvo las definiciones, es una expresión.
five = 5
six = 3 + 3
Las funciones se definen con name parameters... = expression,
y los parámetros se separan únicamente con un espacio.
add number1 number2 = number1 + number2
Llamar a una función también es una expresión, y se hace escribiendo el nombre de la función y pasando un argumento por cada uno de sus parámetros, separados por un espacio, igual que en la definición de una función.
five = add 2 3
Los paréntesis se pueden usar para especificar el orden de evaluación de una expresión.
six = add 2 (1 * 4)
twelve = add 2 1 * 4
Elm no usa marcadores sintácticos como llaves, paréntesis o punto y coma para delimitar el código. En su lugar, usa espacios en blanco e indentación.
-- A function split over multiple lines, so subsequent lines must be indented
add number1 number2 =
number1 + number2
https://elmprogramming.com/indentation.html
Cada archivo en Elm es un módulo y debe contener una sentencia module antes que cualquier otro código.
Los nombres de los módulos deben coincidir con el nombre de su archivo, así que el módulo Calculator debe estar en el archivo Calculator.elm.
Todo lo que se define dentro de un módulo tiene ámbito privado dentro de él
y no se puede acceder desde fuera de ese módulo, a menos que aparezca en exposing.
-- Define the Calculator module, and expose the `add` function
module Calculator exposing (add)
six = 3 + 3
add number1 number2 = number1 + number2
-- Define the Calculator module, and expose everything within: `six` and `add`
module Calculator exposing (..)
six = 3 + 3
add number1 number2 = number1 + number2
https://elm-lang.org/docs/syntax#modules
Un comentario es un texto dentro del archivo de Elm que no se interpreta como código.
Está pensado principalmente para que lo lean tú y otras personas que programan.
Hay una sintaxis ligera para los comentarios de una sola línea, basada en dos guiones.
También existen los comentarios multilínea, con el par de delimitadores de apertura y cierre {- y -}.
-- a single line comment
-- another single line comment
{- a multiline comment
spawning multiple lines
-}
Existe una guía de estilo y elm-format se puede usar para formatear el código automáticamente.
En este ejercicio vas a escribir algo de código para ayudarte a cocinar una lasaña espectacular sacada del libro de recetas que más te gusta.
Tienes tres tareas, todas relacionadas con el tiempo que se dedica a cocinar la lasaña.
Define expectedMinutesInOven para calcular cuántos minutos debe estar la lasaña en el horno. Según el libro de recetas, el tiempo esperado en el horno, en minutos, es 40:
expectedMinutesInOven
--> 40
Define preparationTimeInMinutes, que toma como parámetro el número de capas de la lasaña y devuelve cuántos minutos se tarda en prepararla, suponiendo que cada capa tarda 2 minutos en prepararse.
preparationTimeInMinutes 3
--> 6
Define la función elapsedTimeInMinutes, que toma dos parámetros: el primero es el número de capas de la lasaña y el segundo es el número de minutos que la lasaña lleva en el horno. La función debe devolver cuántos minutos has dedicado a cocinar la lasaña, que es la suma del tiempo de preparación en minutos y el tiempo en minutos que la lasaña ha pasado en el horno hasta ese momento.
elapsedTimeInMinutes 3 20
--> 26
Regístrate en Exercism para aprender y dominar Elm con 28 conceptos110 ejercicios y mentoría humana real, todo gratis.