Ένας Array στην Elm είναι μια γρήγορη, αμετάβλητη συλλογή από μηδέν ή περισσότερες τιμές του ίδιου τύπου.
Σε αντίθεση με τη List, που είναι προεπιλεγμένη εισαγωγή, το module Array πρέπει να εισαχθεί ρητά, με import Array ή κάτι παρόμοιο.
Μπορείς να ορίσεις πίνακες ως εξής:
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" ]
Προσθέτεις στοιχεία σε έναν πίνακα με το Array.push:
twoToFour = Array.fromList [ 2, 3, 4 ]
oneToFour = Array.push 1 twoToFour --> Array.fromList [ 1, 2, 3, 4 ]
Ανακτάς ένα στοιχείο από έναν πίνακα με το Array.get:
sixSeven = Array.fromList [ 6, 7 ]
Array.get 0 sixSeven --> Just 6
Θέτεις ένα στοιχείο σε έναν πίνακα με το Array.set:
sixSeven = Array.fromList [ 6, 7 ]
Array.set 1 8 sixSeven --> Array.fromList [ 6, 8 ]
Χειρίζεσαι τους πίνακες με συναρτήσεις που ορίζονται στο module Array.
oneTwo = Array.fromList [ 1, 2 ]
Array.length oneTwo --> 2
Ως μαθητευόμενη μάγισσα, η Elyse χρειάζεται να εξασκηθεί στα βασικά. Έχει μια τράπουλα που θέλει να επεξεργαστεί.
Για να γίνουν τα πράγματα λίγο πιο εύκολα, χρησιμοποιεί μόνο τα χαρτιά 1 έως 10.
Υλοποίησε τη συνάρτηση getCard που επιστρέφει το χαρτί στη θέση index από την τράπουλα που δίνεται. Αν η θέση δεν υπάρχει στην τράπουλα, επέστρεψε Nothing.
getCard 2 ( Array.fromList [ 1, 2, 4, 1 ] )
--> Just 4
getCard 6 ( Array.fromList [ 1, 2, 4, 1 ] )
--> Nothing
Υλοποίησε τη συνάρτηση setCard που επιστρέφει μια τράπουλα όπου το χαρτί στη θέση index έχει αλλαχθεί με το νέο χαρτί που δίνεται.
Αν η θέση index δεν υπάρχει στην τράπουλα, επέστρεψε την αρχική τράπουλα.
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 ]
Υλοποίησε τη συνάρτηση addCard που επιστρέφει μια τράπουλα με το νέο χαρτί προστεμένο.
addCard 8 ( Array.fromList [ 5, 9, 7, 1 ] )
--> Array.fromList [ 5, 9, 7, 1, 8 ]
Υλοποίησε τη συνάρτηση removeCard που επιστρέφει μια τράπουλα όπου έχει αφαιρεθεί το χαρτί στη θέση index.
Αν η θέση index που δίνεται δεν είναι έγκυρη θέση στην τράπουλα, επέστρεψε την αρχική τράπουλα.
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 ]
Υλοποίησε τη συνάρτηση evenCardCount που μετράει τον αριθμό των ζυγών χαρτιών στην τράπουλα.
evenCardCount (Array.fromList [ 3, 8, 4, 5, 1, 6, 10 ] )
--> 4
Γράψου στο Exercism για να μάθεις και να κατακτήσεις Elm με 28 έννοιες110 ασκήσεις και πραγματική καθοδήγηση από ανθρώπους, όλα δωρεάν.