Une List en Elm est une collection immuable de zéro ou plusieurs valeurs du même type.
Les listes peuvent être définies comme suit :
empty = []
singleValue = [ 5 ]
threeValues = [ "a", "b", "c" ]
La façon la plus courante d'ajouter un élément à une liste est d'utiliser l'opérateur :: (cons) :
twoToFour = [ 2, 3, 4 ]
oneToFour = 1 :: twoToFour --> [ 1, 2, 3, 4 ]
Les listes se manipulent à l'aide des fonctions et des opérateurs définis dans le module List ou par filtrage par motifs
describe : List String -> String
describe list =
case list of
[] ->
"Empty list"
[ "hello" ] ->
"Singleton list with: hello"
x :: xs ->
"Non-empty list with head: " ++ x
describe [] --> "Empty list"
describe [ "hello" ] --> "Singleton list with: hello"
describe [ "hello", "world" ] --> "Non-empty list with head: hello"
Dans cet exercice, tu vas écrire du code pour garder une trace des langages de programmation que tu veux apprendre sur Exercism. Tu as six tâches, qui vont toutes te demander de manipuler des tableaux.
Pour garder une trace des langages que tu veux apprendre, tu vas devoir créer un nouveau tableau.
Définis la constante newList qui contient un nouveau tableau vide.
newList
--> []
Pour l'instant, tu as une feuille de papier sur laquelle sont listés les langages que tu veux apprendre : Elm, Clojure et Haskell.
Définis la constante existingList pour représenter ce tableau.
existingList
--> [ "Elm", "Clojure", "Haskell" ]
Au fur et à mesure que tu explores Exercism et que tu découvres des langages plus intéressants, tu vas vouloir les ajouter à ton tableau.
Implémente la fonction addLanguage pour ajouter un nouveau langage au début du tableau.
addLanguage "TypeScript" [ "JavaScript", "CoffeeScript" ]
--> [ "TypeScript", "JavaScript", "CoffeeScript" ]
Compter les langages à la main n'est pas pratique.
Implémente la fonction countLanguages pour compter le nombre de langages dans le tableau.
countLanguages [ "C#", "Racket", "Rust", "Ruby" ]
--> 4
À un moment donné, tu te rends compte que ton tableau est en fait rangé à l'envers !
Implémente la fonction reverseList pour inverser ton tableau.
reverseList [ "Prolog", "C", "Idris", "Assembly" ]
--> [ "Assembly", "Idris", "C", "Prolog" ]
Même si tu aimes tous les langages, Elm occupe une place particulière dans ton cœur. Pour cette raison, un tableau de langages te passionne vraiment si :
Implémente la fonction excitingList pour vérifier si un tableau de langages est passionnant :
excitingList [ "Nim", "Elm" ]
--> True
Inscris-toi sur Exercism pour apprendre et maîtriser Elm avec 28 concepts110 exercices, et un vrai mentorat humain, le tout gratuitement.