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