La expresión let se usa para crear un scope local y resulta útil en varias situaciones:
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)
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.
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
Regístrate en Exercism para aprender y dominar Elm con 28 conceptos110 ejercicios y mentoría humana real, todo gratis.