Tracks
/
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, 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

Indentación / espacios en blanco significativos

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.

  • Las definiciones de módulos, importaciones y 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 esa expresión 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 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

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

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

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 recetas, 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 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

3. Calcula el tiempo transcurrido, en minutos

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

¿Todo 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.