Eine List in Elm ist eine unveränderliche Sammlung von null oder mehr Werten desselben Typs.
Listen kannst du so definieren:
empty = []
singleValue = [ 5 ]
threeValues = [ "a", "b", "c" ]
Am häufigsten fügst du einer Liste ein Element mit dem ::-Operator (cons) hinzu:
twoToFour = [ 2, 3, 4 ]
oneToFour = 1 :: twoToFour --> [ 1, 2, 3, 4 ]
Listen werden mit Funktionen und Operatoren aus dem List-Modul bearbeitet oder mit Pattern Matching.
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"
In dieser Übung schreibst du Code, um eine Liste von Programmiersprachen im Blick zu behalten, die du auf Exercism lernen möchtest. Du hast sechs Aufgaben, bei denen es immer um Listen geht.
Um die Sprachen im Blick zu behalten, die du lernen möchtest, brauchst du eine neue Liste.
Definiere die Konstante newList, die eine neue, leere Liste enthält.
newList
--> []
Momentan hast du einen Zettel, auf dem die Sprachen stehen, die du lernen möchtest: Elm, Clojure und Haskell.
Definiere die Konstante existingList, die diese Liste repräsentiert.
existingList
--> [ "Elm", "Clojure", "Haskell" ]
Wenn du Exercism erkundest und weitere interessante Sprachen findest, möchtest du sie deiner Liste hinzufügen.
Implementiere die Funktion addLanguage, um eine neue Sprache an den Anfang deiner Liste hinzuzufügen.
addLanguage "TypeScript" [ "JavaScript", "CoffeeScript" ]
--> [ "TypeScript", "JavaScript", "CoffeeScript" ]
Es ist unpraktisch, die Sprachen manuell zu zählen.
Implementiere die Funktion countLanguages, um die Anzahl der Sprachen in deiner Liste zu zählen.
countLanguages [ "C#", "Racket", "Rust", "Ruby" ]
--> 4
Irgendwann stellst du fest, dass deine Liste tatsächlich rückwärts angeordnet ist!
Implementiere die Funktion reverseList, um deine Liste umzukehren.
reverseList [ "Prolog", "C", "Idris", "Assembly" ]
--> [ "Assembly", "Idris", "C", "Prolog" ]
Du liebst zwar alle Sprachen, aber Elm hat einen besonderen Platz in deinem Herzen. Deshalb bist du von einer Liste von Sprachen richtig begeistert, wenn:
Implementiere die Funktion excitingList, um zu prüfen, ob eine Liste von Sprachen spannend ist:
excitingList [ "Nim", "Elm" ]
--> True
Melde dich bei Exercism an, um Elm mit 28 Konzepte110 Übungen und echtem menschlichen Mentoring zu lernen und zu meistern, alles kostenlos.