Un valor constante se define con name = expression. En Elm, todo lo que no son definiciones son expresiones.
five = 5
six = 3 + 3
Las funciones se definen con name parameters... = expression, y los parámetros se separan únicamente por espacios.
add number1 number2 = number1 + number2
Llamar a una función también es una expresión y se hace indicando su nombre y pasando argumentos para cada uno de los parámetros de la función, separados por espacios, igual que en la definición de funciones.
five = add 2 3
Se pueden usar paréntesis 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 puntos y coma para especificar los límites del código. En su lugar, usa espacios 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 instrucción 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 un scope privado dentro de él y no se puede acceder desde fuera de este 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 otros programadores.
Existe una sintaxis ligera para los comentarios de una sola línea, basada en dos guiones.
También son posibles los comentarios de varias líneas 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 excelente con tu libro de cocina favorito.
Tienes tres tareas, todas relacionadas con el tiempo empleado en cocinar la lasaña.
Define expectedMinutesInOven para calcular cuántos minutos debe estar la lasaña en el horno. Según el libro de cocina, el tiempo esperado en el horno en minutos es 40:
expectedMinutesInOven
--> 40
Define preparationTimeInMinutes, que toma el número de capas de la lasaña como parámetro y devuelve cuántos minutos se tarda en preparar la lasaña, suponiendo que cada capa tarda 2 minutos en prepararse.
preparationTimeInMinutes 3
--> 6
Define la función elapsedTimeInMinutes, que toma dos parámetros: el primer parámetro es el número de capas de la lasaña, y el segundo parámetro es el número de minutos que la lasaña lleva en el horno. La función debe devolver cuántos minutos has trabajado en 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 en 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.