Rutas
/
Elm
Elm
/
Ejercicios
/
La deliciosa lasaña de Lucian
La deliciosa lasaña de Lucian

La deliciosa lasaña de Lucian

Ejercicio de aprendizaje

Introducción

Conceptos básicos 1

Constantes y funciones

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

Indentación / espacios significativos

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.

  • Las definiciones de módulo, de import y de funciones de nivel superior deben empezar en la columna más a la izquierda.
  • Si una expresión se divide en varias líneas, el código que forma parte de esa expresión debe estar indentado bajo ella con al menos un espacio.
  • Las partes de la expresión que van agrupadas deben indentarse con el mismo número de espacios.
-- A function split over multiple lines, so subsequent lines must be indented
add number1 number2 =
    number1 + number2

https://elmprogramming.com/indentation.html

Módulos

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

Comentarios

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
-}

Formato

Existe una guía de estilo y elm-format se puede usar para formatear el código automáticamente.

Instrucciones

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.

1. Define el tiempo esperado en el horno en minutos

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

2. Calcula el tiempo de preparación en minutos

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

3. Calcula el tiempo transcurrido en minutos

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
Editar en GitHub El enlace se abre en una ventana o pestaña nueva
Elm Exercism

¿Listo para empezar La deliciosa lasaña de Lucian?

Regístrate en Exercism para aprender y dominar Elm con 28 conceptos110 ejercicios y mentoría humana real, todo gratis.