Tracks
/
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 ámbito local y resulta útil en algunas situaciones:

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

Puedes hacer casi cualquier cosa dentro de una expresión let, incluida la desestructuración (encontrarás más detalles sobre esto en ejercicios posteriores), pero no es posible definir un nuevo Custom Type ni un Type Alias.

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 regalaron un nuevo libro de cocina 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.

Tu compañera de casa todavía está ocupada en la oficina y quiere saber a qué hora estará lista la lasaña, para poder asegurarse de llegar 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, debes 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 la cantidad de capas de la lasaña y el segundo es la cantidad 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 la cantidad 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

Devuelve cuántos minutos faltan para que la lasaña esté lista (en la parte in de la expresión let), que es la suma de preparationTimeInMinutes y expectedMinutesInOven menos la cantidad 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 una pestaña nuevas
Elm Exercism

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