Orme - Boucle

Elm est un langage de programmation fonctionnel. Elm utilise le concept de récursivité comme alternative aux constructions de boucle traditionnelles.

Ce chapitre traite du concept de récursivité.

Récursion

Certains langages de programmation informatique permettent à un module ou à une fonction de s'appeler. Cette technique est connue sous le nom de récursivité.

Illustration

Dans ce programme, nous verrons comment utiliser la récursivité pour afficher bonjour cinq fois.

Step 1 − Create a file Loop.elm

Créer une boucle de module et définir une fonction sayHello. La fonction sayHello prend une valeur entière comme entrée et renvoie une valeur de chaîne.

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

La fonction sayHello vérifie si le paramètre passé est 1. Si le paramètre est 1, alors la fonction retournera, sinon elle créera une chaîne Hello et appellera la même fonction.

Step 2 − Invoke sayHello from REPL

Ouvrez le REPL elm à partir du dossier du projet actuel (emplacement du fichier 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
>

Illustration

L'exemple suivant imprime la somme de n nombres à l'aide de la récursivité.

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

Dans elm REPL, nous avons créé une fonction sumOfNos qui prend un nombre d'entrée et additionne tous les nombres de 0 à ce nombre.

Par exemple, si nous passons l'entrée comme 5, cela résumera 1 + 2 + 3 + 4 + 5, soit 15 .

> ssumOfNos 5
15 : number

La sortie du programme est indiquée ci-dessus.