A expressão let é usada para criar um escopo local e é útil em algumas situações:
Você pode fazer quase tudo dentro de uma expressão let, incluindo desestruturação (mais detalhes sobre isso em exercícios posteriores), mas não é possível definir um novo Custom Type ou 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)
Você ganhou um livro de receitas novo de aniversário e quer descobrir se a receita de lasanha dele é melhor que a do seu livro de receitas favorito atual. Neste exercício, você vai escrever um código para ajudar a cozinhar a lasanha do livro novo.
Sua colega de casa ainda está ocupada no escritório e quer saber a que horas a lasanha vai ficar pronta, para ter certeza de que volta a tempo.
Crie uma função para descobrir a que horas a lasanha vai ficar pronta. Para deixar o código simples e expressivo, você deve usar uma expressão let.
Defina a função remainingTimeInMinutes, que recebe dois parâmetros e tem uma expressão let como corpo. O primeiro parâmetro é o número de camadas da lasanha, e o segundo é o número de minutos desde que você começou a cozinhar.
Defina expectedMinutesInOven (na parte let da expressão let) para verificar quantos minutos a lasanha deve ficar no forno. De acordo com o livro de receitas, o tempo esperado no forno em minutos é 40:
expectedMinutesInOven
--> 40
Defina preparationTimeInMinutes (na parte let da expressão let), que recebe o número de camadas da lasanha como parâmetro e retorna quantos minutos leva para preparar a lasanha, supondo que cada camada leva 2 minutos para preparar.
preparationTimeInMinutes 3
--> 6
Retorne quantos minutos faltam até a lasanha ficar pronta (na parte in da expressão let), que é a soma de preparationTimeInMinutes e expectedMinutesInOven menos o número de minutos desde que você começou a cozinhar.
remainingTimeInMinutes 3 10
--> 6 + 40 - 10 = 36
Crie sua conta no Exercism para aprender e dominar Elm com 28 conceitos110 exercícios e mentoria humana de verdade, tudo de graça.