Az Array az Elmben egy gyors, megváltoztathatatlan gyűjtemény, amely nulla vagy több azonos típusú értéket tárol.
A List-tel ellentétben, amely alapértelmezés szerint importált, az Array modult explicit módon importálni kell az import Array utasítással vagy hasonlóval.
A tömböket a következőképpen definiálhatod:
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" ]
A tömbökhöz az Array.push függvénnyel adhatsz hozzá elemeket:
twoToFour = Array.fromList [ 2, 3, 4 ]
oneToFour = Array.push 1 twoToFour --> Array.fromList [ 1, 2, 3, 4 ]
Egy tömb elemének lekéréséhez az Array.get függvényt használhatod:
sixSeven = Array.fromList [ 6, 7 ]
Array.get 0 sixSeven --> Just 6
Egy tömb elemét az Array.set függvénnyel állíthatod be:
sixSeven = Array.fromList [ 6, 7 ]
Array.set 1 8 sixSeven --> Array.fromList [ 6, 8 ]
A tömböket az Array modulban definiált függvényekkel kezelheted.
oneTwo = Array.fromList [ 1, 2 ]
Array.length oneTwo --> 2
Elyse, a leendő varázsló szeretné gyakorolni az alapokat. Van egy pakli kártyája, amit szeretne manipulálni.
Hogy egy kicsit könnyebb legyen a dolga, csak az 1-től 10-ig terjedő kártyákat használja.
Készítsd el a getCard függvényt, amely visszaadja a megadott pakli index pozícióján lévő kártyát. Ha az index nincs benne a pakliban, add vissza a Nothing értéket.
getCard 2 ( Array.fromList [ 1, 2, 4, 1 ] )
--> Just 4
getCard 6 ( Array.fromList [ 1, 2, 4, 1 ] )
--> Nothing
Készítsd el a setCard függvényt, amely visszaad egy paklit, amiben az index pozícióján lévő kártya a megadott új kártyára változott.
Ha az index nincs benne a pakliban, add vissza az eredeti paklit.
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 ]
Készítsd el az addCard függvényt, amely visszaad egy paklit az új kártyával kiegészítve.
addCard 8 ( Array.fromList [ 5, 9, 7, 1 ] )
--> Array.fromList [ 5, 9, 7, 1, 8 ]
Készítsd el a removeCard függvényt, amely visszaad egy paklit, amiből az index pozícióján lévő kártya el van távolítva.
Ha a megadott index nem érvényes index a pakliban, add vissza az eredeti paklit.
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 ]
Készítsd el az evenCardCount függvényt, amely megszámolja a pakliban lévő páros kártyákat.
evenCardCount (Array.fromList [ 3, 8, 4, 5, 1, 6, 10 ] )
--> 4
Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) Elm nyelvet 28 fogalom110 feladat segítségével, valódi emberi mentorálással, mindez ingyen.