7. Ações — dar nome a um pedaço de código
action, parâmetros e yield: escrever uma vez, usar em qualquer lugar.
Quando o mesmo pedaço de código aparece duas vezes, ele merece um nome. Uma ação (a função de outras linguagens) recebe valores, faz algo com eles, e devolve um resultado com yield.
dataforge
action imc(peso, altura):
yield peso / (altura ** 2)
action classificar(valor):
given valor smaller 18.5:
yield "abaixo do peso"
given valor smaller 25:
yield "normal"
yield "acima do peso"
meu := imc(70, 1.75)
out $"IMC {round(meu, 1)}: {classificar(meu)}"
assert classificar(imc(70, 1.75)) is "normal"Valor padrão e tipos#
dataforge
action saudar(nome: String, cumprimento := "Ola") -> String:
yield $"{cumprimento}, {nome}!"
assert saudar("Ana") is "Ola, Ana!"
assert saudar("Bia", "Bom dia") is "Bom dia, Bia!"
// saudar(42) e acusado pelo 'dataforge check' antes de rodarPróximo: 8. O primeiro programa completo.