Elm:
Organisation du code en fonctions

Comment faire :

Voici un extrait de code Elm avec une fonction simple pour saluer un utilisateur :

module Main exposing (..)

import Html exposing (text)

greetUser : String -> String
greetUser userName =
    "Bonjour, " ++ userName ++ "!"

main =
    text (greetUser "Casey")

Exécutez-le, et vous obtiendrez la sortie : “Bonjour, Casey !”

Maintenant, disons que vous voulez ajouter plus de personnalisation. Extrayez plus de fonctionnalités !

module Main exposing (..)

import Html exposing (text)

greetUser : String -> String -> String
greetUser greeting userName =
    greeting ++ ", " ++ userName ++ "!"

personalGreeting : String -> String
personalGreeting userName =
    greetUser "Salut" userName

main =
    text (personalGreeting "Casey")

Maintenant, lorsque vous l’exécutez : “Salut, Casey !” Magie ? Non, juste des fonctions qui font leur travail.

Plongée en profondeur

Autrefois, le code était souvent une longue séquence d’instructions (pensez au code spaghettis). C’était un cauchemar à maintenir. Puis la programmation structurée est apparue, et avec elle, les fonctions. Elm, comme ses prédécesseurs en programmation fonctionnelle, repose fortement sur les fonctions pour l’organisation.

Vous pouvez imbriquer des fonctions, créant des fermetures, ou les garder pures pour simplifier. Elm encourage cette dernière approche : des fonctions pures avec des entrées et sorties bien définies, ce qui facilite le débogage et le test.

Les fonctions Elm peuvent également être d’ordre supérieur, ce qui signifie qu’elles peuvent accepter ou retourner d’autres fonctions. Cela ouvre un monde de composabilité. Cependant, contrairement à certains autres langages, Elm n’a pas de surcharge de fonction ; chaque fonction doit avoir un nom unique.

De plus, Elm impose un système de typage statique strict qui non seulement vérifie les types, mais les infère également, réduisant le code à écrire.

En comparaison avec des alternatives telles que l’organisation de code procédurale ou orientée objet dans d’autres langages, l’approche d’Elm met l’accent sur la simplicité et la prévisibilité. Elm n’a pas d’objets ou de classes. Vous organisez le code avec des fonctions et des modules plutôt qu’avec des classes et des instances.

Voir aussi

Pour approfondir, consultez ces ressources :