Elm - Loop

Elm é uma linguagem de programação funcional. Elm usa o conceito de recursão como uma alternativa às construções de loop tradicionais.

Este capítulo discute o conceito de recursão.

Recursão

Algumas linguagens de programação de computador permitem que um módulo ou função chame a si mesmo. Essa técnica é conhecida como recursão.

Ilustração

Neste programa, veremos como usar a recursão para exibir hello cinco vezes.

Step 1 − Create a file Loop.elm

Crie um loop de módulo e defina uma função sayHello. A função sayHello recebe um valor inteiro como entrada e retorna um valor de string.

module Loop exposing(..)
//function signature
sayHello:Int ->String
//function implementation
sayHello n =
   case n of
   1 -> "Hello:1 "
   _ -> "Hello:" ++ toString (n) ++ " " ++ sayHello(n-1)

A função sayHello verifica se o parâmetro passado é 1. Se o parâmetro for 1, a função retornará, caso contrário, criará uma string Hello e chamará a mesma função.

Step 2 − Invoke sayHello from REPL

Abra o elm REPL da pasta do projeto atual (localização do arquivo Loop.elm).

//import the module Loop
> import Loop exposing(..)
//invoke the sayHello function with parameter value as 5
> sayHello 5
"Hello:5 Hello:4 Hello:3 Hello:2 Hello:1 Hello:0 " : String
>

Ilustração

O exemplo a seguir imprime a soma de n números usando recursão.

> sumOfNos n =\
| if n==0 then 0 \
| else (n) + sumOfNos (n-1)
<function> : number -> number1

No olmo REPL, criamos uma função sumOfNos que pega um número de entrada e soma todos os números de 0 a esse número.

Por exemplo, se passarmos a entrada como 5, isso somará 1 + 2 + 3 + 4 + 5, que é 15 .

> ssumOfNos 5
15 : number

A saída do programa é mostrada acima.