Elm - Fonctions

Les fonctions sont les éléments constitutifs d'un programme Elm. Une fonction est un ensemble d'instructions pour effectuer une tâche spécifique.

Les fonctions organisent le programme en blocs logiques de code. Une fois définies, les fonctions peuvent être appelées pour accéder au code. Cela rend le code réutilisable. De plus, les fonctions facilitent la lecture et la maintenance du code du programme.

Étapes à suivre pour utiliser une fonction

Il y a trois étapes pour utiliser une fonction -

Déclaration de fonction

Une déclaration de fonction informe le compilateur du nom, du type de retour et des paramètres d'une fonction. La syntaxe pour déclarer une fonction est donnée ci-dessous -

fn_name:data_type_of_the_parameters ->return_type

La déclaration de fonction spécifie ce qui suit -

  • Nom de la fonction.

  • Type de données des paramètres. Ceci est facultatif car une fonction peut avoir ou non des paramètres.

  • Type de données de la valeur que la fonction retournera. Les fonctions dans Elm doivent toujours renvoyer une valeur car Elm est un langage de programmation fonctionnel. Contrairement aux fonctions d'autres langages de programmation, les fonctions Elm n'utilisent pas le mot-clé return pour renvoyer une valeur.

Définition de fonction ou implémentation de fonction

Une définition de fonction fournit le corps réel de la fonction. Une définition de fonction spécifie comment une tâche spécifique serait effectuée. La syntaxe pour définir une fonction est la suivante -

fn_name parameter1 parameter2 = statements

Invoquer ou appeler une fonction

Une fonction doit être appelée pour l'exécuter. La syntaxe pour appeler une fonction est donnée ci-dessous -

fn_name parameter1 parameter2

Illustration

Le code suivant définit une fonction saluer. La fonction renvoie une chaîne "Hello".

> greet = \
| if True then \
| "Hello" \
| else \
| "GoodBye"
"Hello" : String
> greet
"Hello" : String

Fonctions paramétrées

Les paramètres sont un mécanisme permettant de transmettre des valeurs à une fonction. Les valeurs des paramètres sont transmises à la fonction au moment de l'appel de la fonction.

Illustration 1

L'exemple suivant définit une fonction fn_add . La fonction accepte deux nombres comme paramètres et renvoie leur somme. Essayez ce qui suit dans elm REPL -

> fn_add x y = x+y
<function> : number -> number -> number
> fn_add 10 20
30 : number

Illustration 2

L'exemple suivant définit une fonction sayHello. La fonction sayHello accepte et renvoie une valeur String en tant que paramètre et renvoie une String.

> sayHello name = "Hello "++ name
<function> : String -> String
> sayHello "Tutorialspoint"
"Hello Tutorialspoint" : String
>

Opérateur de canalisation

Pour comprendre l'opérateur pipe |>, considérons un exemple où nous avons une liste de différentes chaînes ["a", "b", "c"] . Maintenant, nous avons besoin d'une seule chaîne, qui est séparée par -

L'exemple suivant montre comment faire cela avec String.join

> String.join "-" ["a","b","c","d","e","f"]
"a-b-c-d-e-f" : String

La même action peut être effectuée en utilisant un opérateur de tube |>. L'opérateur de canal peut être utilisé pour chaîner plusieurs appels de fonction.

> ["a","b","c","d","e","f"] |> String.join "-"
"a-b-c-d-e-f" : String
> ["a","b","c","d","e","f"] |> List.reverse |> String.join "-"
"f-e-d-c-b-a" : String

Dans le premier exemple, nous chaînons la méthode list to join. Dans le second cas, la même liste est redirigée vers la fonction inverse, puis redirigée vers la jointure. Ainsi, la liste est affichée inversée et jointe.