Rutas
/
Elm
Elm
/
Ejercicios
/
La maravillosa lasaña de Mario
La maravillosa lasaña de Mario

La maravillosa lasaña de Mario

Ejercicio de aprendizaje

Introducción

Let

La expresión let se usa para crear un scope local y resulta útil en varias situaciones:

  • Para simplificar expresiones
  • Para nombrar los resultados de expresiones intermedias
  • Dividir una expresión en partes más pequeñas si se está volviendo grande

Puedes hacer casi todo dentro de una expresión let, incluida la desestructuración (más detalles sobre esto en ejercicios posteriores), pero no es posible definir un nuevo tipo personalizado ni un alias de tipo.

let
  cube x = x * x * x
in
  cube a + cube b + cube c
beginWithPattern : Size -> Padding -> Pattern -> GameOfLife
beginWithPattern minimumSize padding pattern =
    let
        size = calculateSize minimumSize padding pattern

        center = Size.center size

        centeredPattern = Pattern.centerAt center pattern

        dimensions = { width = size, height = size }

        deadCells = Matrix.create dimensions Dead
    in
    GameOfLife (bringPatternToLife deadCells centeredPattern)

Instrucciones

Te han regalado un libro de cocina nuevo por tu cumpleaños y quieres averiguar si la receta de lasaña que trae es mejor que la de tu libro de cocina favorito actual. En este ejercicio vas a escribir algo de código para ayudarte a cocinar la lasaña del nuevo libro de cocina.

Tu compañera de piso sigue ocupada en la oficina y quiere saber a qué hora estará lista la lasaña para poder asegurarse de estar de vuelta a tiempo.

1. Calcula a qué hora estará lista la lasaña

Crea una función para calcular a qué hora estará lista la lasaña. Para que el código sea simple y expresivo, deberías usar una expresión let.

Define la función remainingTimeInMinutes que recibe dos parámetros y tiene una expresión let como cuerpo. El primer parámetro es el número de capas de la lasaña y el segundo es el número de minutos desde que empezaste a cocinar.

Define expectedMinutesInOven (en la parte let de la expresión let) para comprobar cuántos minutos debe estar la lasaña en el horno. Según el libro de cocina, el tiempo esperado en el horno es de 40 minutos:

expectedMinutesInOven
    --> 40

Define preparationTimeInMinutes (en la parte let de la expresión let) que recibe el número de capas de la lasaña como parámetro y devuelve cuántos minutos se tardan en preparar la lasaña, suponiendo que cada capa tarda 2 minutos en prepararse.

preparationTimeInMinutes 3
    --> 6

Devuelve cuántos minutos quedan hasta que la lasaña esté lista (en la parte in de la expresión let), que es la suma de preparationTimeInMinutes y expectedMinutesInOven menos el número de minutos desde que empezaste a cocinar.

remainingTimeInMinutes 3 10
    --> 6 + 40 - 10 = 36
Editar en GitHub El enlace se abre en una ventana o pestaña nueva
Elm Exercism

¿Listo para empezar La maravillosa lasaña de Mario?

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