Trilhas
/
Elm
Elm
/
Exercícios
/
A lasanha deliciosa do Lucian
A lasanha deliciosa do Lucian

A lasanha deliciosa do Lucian

Exercício de aprendizagem

Introdução

Básico 1

Constantes e funções

Um valor constante é definido com name = expression, e em Elm tudo, exceto as definições, é uma expressão.

five = 5

six = 3 + 3

Funções são definidas com name parameters... = expression, e os parâmetros são separados apenas por espaço.

add number1 number2 = number1 + number2

Chamar uma função também é uma expressão, e você faz isso informando o nome dela e passando argumentos para cada um dos parâmetros da função, separados por espaço, exatamente como na definição de uma função.

five = add 2 3

Você pode usar parênteses para especificar a ordem de avaliação de uma expressão.

six = add 2 (1 * 4)

twelve = add 2 1 * 4

Indentação / espaços em branco significativos

Elm não usa marcadores sintáticos como chaves, parênteses ou ponto e vírgula para delimitar o código. Em vez disso, usa espaços em branco e indentação.

  • Definições de módulo, de import e de funções de nível superior precisam começar na coluna mais à esquerda.
  • Se uma expressão for dividida em várias linhas, o código que faz parte dessa expressão precisa ser indentado abaixo dela com pelo menos um espaço.
  • As partes da expressão que estão agrupadas devem ser indentadas com a mesma quantidade de espaços.
-- A function split over multiple lines, so subsequent lines must be indented
add number1 number2 =
    number1 + number2

https://elmprogramming.com/indentation.html

Módulos

Cada arquivo em Elm é um módulo e precisa conter uma instrução module antes de qualquer outro código. Os nomes dos módulos precisam corresponder ao nome do arquivo, então o módulo Calculator precisa estar no arquivo Calculator.elm. Tudo o que é definido dentro de um módulo tem escopo privado e não pode ser acessado de fora desse módulo, a menos que esteja listado em exposing.

-- Define the Calculator module, and expose the `add` function
module Calculator exposing (add)

six = 3 + 3

add number1 number2 = number1 + number2
-- Define the Calculator module, and expose everything within: `six` and `add`
module Calculator exposing (..)

six = 3 + 3

add number1 number2 = number1 + number2

https://elm-lang.org/docs/syntax#modules

Comentários

Um comentário é um texto dentro do arquivo Elm que não é interpretado como código. Ele serve principalmente para você e outros programadores lerem. Existe uma sintaxe leve para comentários de uma linha, baseada em dois hífens. Também é possível escrever comentários de várias linhas com o par de delimitadores de abertura e fechamento {- e -}.

-- a single line comment
-- another single line comment

{- a multiline comment
   spawning multiple lines
-}

Formatação

Existe um guia de estilo, e o elm-format pode ser usado para formatar o código automaticamente.

Instruções

Neste exercício você vai escrever um pouco de código para ajudar a preparar uma lasanha incrível usando seu livro de receitas favorito.

Você tem três tarefas, todas relacionadas ao tempo gasto no preparo da lasanha.

1. Defina o tempo esperado no forno em minutos

Defina expectedMinutesInOven para calcular 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

2. Calcule o tempo de preparo em minutos

Defina preparationTimeInMinutes, que recebe o número de camadas da lasanha como parâmetro e retorna quantos minutos são necessários para preparar a lasanha, considerando que cada camada leva 2 minutos para ser preparada.

preparationTimeInMinutes 3
    --> 6

3. Calcule o tempo decorrido em minutos

Defina a função elapsedTimeInMinutes, que recebe dois parâmetros: o primeiro parâmetro é o número de camadas da lasanha, e o segundo é o número de minutos que a lasanha já passou no forno. A função deve retornar quantos minutos você trabalhou no preparo da lasanha, que é a soma do tempo de preparo em minutos com o tempo em minutos que a lasanha passou no forno até o momento.

elapsedTimeInMinutes 3 20
    --> 26
Editar via GitHub O link abre em uma nova janela ou aba
Elm Exercism

Tudo pronto para começar A lasanha deliciosa do Lucian?

Crie sua conta no Exercism para aprender e dominar Elm com 28 conceitos110 exercícios e mentoria humana de verdade, tudo de graça.