Um valor constante define-se com name = expression.
No Elm, tudo o que não seja uma definição é uma expressão.
five = 5
six = 3 + 3
As funções definem-se com name parameters... = expression,
e os parâmetros são separados apenas por espaços.
add number1 number2 = number1 + number2
Invocar uma função também é uma expressão e faz-se indicando o nome da função e passando argumentos para cada um dos seus parâmetros, separados por espaços, tal como na definição da função.
five = add 2 3
Podes usar parênteses para especificar a ordem de avaliação de uma expressão.
six = add 2 (1 * 4)
twelve = add 2 1 * 4
O Elm não usa marcadores sintáticos como chavetas, parênteses ou pontos e vírgulas para delimitar o código. Em vez disso, usa espaços em branco e indentação.
-- A function split over multiple lines, so subsequent lines must be indented
add number1 number2 =
number1 + number2
https://elmprogramming.com/indentation.html
Cada ficheiro em Elm é um módulo e tem de conter uma instrução module antes de todo o resto do código.
Os nomes dos módulos têm de coincidir com o nome do ficheiro, por isso o módulo Calculator tem de estar no ficheiro Calculator.elm.
Tudo o que é definido dentro de um módulo tem âmbito privado dentro dele
e não pode ser acedido a partir 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
Um comentário é um texto dentro do ficheiro Elm que não é interpretado como código.
Destina-se sobretudo a ser lido por ti e por outros programadores.
Há uma sintaxe simples para comentários de uma só linha, baseada em dois hífenes.
Também podes ter comentários de várias linhas, com o par de delimitadores de abertura e fecho
{- e -}.
-- a single line comment
-- another single line comment
{- a multiline comment
spawning multiple lines
-}
Existe um guia de estilo, e podes usar o elm-format para formatar o código automaticamente.
Neste exercício vais escrever algum código para te ajudar a cozinhar uma lasanha fantástica do teu livro de receitas preferido.
Tens três tarefas, todas relacionadas com o tempo gasto a cozinhar a lasanha.
Define expectedMinutesInOven para calcular quantos minutos a lasanha deve estar no forno. Segundo o livro de receitas, o tempo esperado no forno, em minutos, é 40:
expectedMinutesInOven
--> 40
Define preparationTimeInMinutes, que recebe o número de camadas da lasanha como parâmetro e devolve quantos minutos são precisos para preparar a lasanha, assumindo que cada camada leva 2 minutos a preparar.
preparationTimeInMinutes 3
--> 6
Define a função elapsedTimeInMinutes, que recebe dois parâmetros: o primeiro é o número de camadas da lasanha e o segundo é o número de minutos que a lasanha está no forno. A função deve devolver quantos minutos já dedicaste a cozinhar a lasanha, ou seja, a soma do tempo de preparação, em minutos, com o tempo, em minutos, que a lasanha passou no forno até ao momento.
elapsedTimeInMinutes 3 20
--> 26
Inscreve-te no Exercism para aprenderes e dominares Elm com 28 conceitos110 exercícios, e mentoria humana real, tudo grátis.