Ein Array in Elm ist eine schnelle, unveränderliche Sammlung von null oder mehr Werten desselben Typs.
Anders als List, die zu den Standard-Importen gehört, muss das Modul Array explizit importiert werden, mit import Array oder ähnlich.
Arrays können wie folgt definiert werden:
import Array exposing (Array)
empty : Array Char
empty = Array.empty
singleValue = Array.fromList [ 5 ] --> Array Int
repeatSingleValue = Array.repeat 2 5 --> Array.fromList [ 5, 5 ]
initialiseFromIndex = Array.initialise 3 (\index -> index * 2) --> Array.fromList [ 0, 2, 4 ]
initialisefromList = Array.fromList [ "a", "b", "c" ] --> Array.fromList [ "a", "b", "c" ]
Elemente werden einem Array mit Array.push hinzugefügt:
twoToFour = Array.fromList [ 2, 3, 4 ]
oneToFour = Array.push 1 twoToFour --> Array.fromList [ 1, 2, 3, 4 ]
Ein Element in einem Array wird mit Array.get abgerufen:
sixSeven = Array.fromList [ 6, 7 ]
Array.get 0 sixSeven --> Just 6
Ein Element in einem Array wird mit Array.set gesetzt:
sixSeven = Array.fromList [ 6, 7 ]
Array.set 1 8 sixSeven --> Array.fromList [ 6, 8 ]
Arrays werden durch Funktionen manipuliert, die im Array-Modul definiert sind.
oneTwo = Array.fromList [ 1, 2 ]
Array.length oneTwo --> 2
Als angehende Magierin muss Elyse einige Grundlagen üben. Sie hat ein Kartendeck, das sie bearbeiten möchte.
Um es etwas einfacher zu machen, verwendet sie nur die Karten 1 bis 10.
Implementiere die Funktion getCard, die die Karte an der Position index aus dem gegebenen Kartendeck zurückgibt. Wenn der Index nicht im Kartendeck vorkommt, gib Nothing zurück.
getCard 2 ( Array.fromList [ 1, 2, 4, 1 ] )
--> Just 4
getCard 6 ( Array.fromList [ 1, 2, 4, 1 ] )
--> Nothing
Implementiere die Funktion setCard, die ein Kartendeck zurückgibt, in dem die Karte an der Position index durch die angegebene neue Karte ersetzt wurde.
Wenn der index nicht im Kartendeck vorkommt, gib das ursprüngliche Kartendeck zurück.
setCard 2 6 ( Array.fromList [ 1, 2, 4, 1 ] )
--> Array.fromList [ 1, 2, 6, 1 ]
setCard 6 6 ( Array.fromList [ 1, 2, 4, 1 ] )
--> Array.fromList [ 1, 2, 4, 1 ]
Implementiere die Funktion addCard, die ein Kartendeck mit der neu hinzugefügten Karte zurückgibt.
addCard 8 ( Array.fromList [ 5, 9, 7, 1 ] )
--> Array.fromList [ 5, 9, 7, 1, 8 ]
Implementiere die Funktion removeCard, die ein Kartendeck zurückgibt, aus dem die Karte an der Position index entfernt wurde.
Wenn der angegebene index kein gültiger Index im Kartendeck ist, gib das ursprüngliche Kartendeck zurück.
removeCard 2 ( Array.fromList [ 3, 2, 6, 4, 8 ] )
--> Array.fromList [ 3, 2, 4, 8 ]
removeCard 2 ( Array.fromList [ 3, 2 ] )
--> Array.fromList [ 3, 2 ]
Implementiere die Funktion evenCardCount, die die Anzahl der geraden Karten im Kartendeck zählt.
evenCardCount (Array.fromList [ 3, 8, 4, 5, 1, 6, 10 ] )
--> 4
Melde dich bei Exercism an, um Elm mit 28 Konzepte110 Übungen und echtem menschlichen Mentoring zu lernen und zu meistern, alles kostenlos.