Διαδρομές
/
Elm
Elm
/
Ασκήσεις
/
Μαθητευόμενος μάγος
Μαθητευόμενος μάγος

Μαθητευόμενος μάγος

Άσκηση εκμάθησης

Εισαγωγή

Πίνακες

Ένας 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.

1. Πάρε ένα χαρτί από την τράπουλα

Υλοποίησε τη συνάρτηση getCard που επιστρέφει το χαρτί στη θέση index από την τράπουλα που δίνεται. Αν η θέση δεν υπάρχει στην τράπουλα, επέστρεψε Nothing.

getCard 2 ( Array.fromList [ 1, 2, 4, 1 ] )
    --> Just 4
getCard 6 ( Array.fromList [ 1, 2, 4, 1 ] )
    --> Nothing

2. Άλλαξε ένα χαρτί στην τράπουλα

Υλοποίησε τη συνάρτηση 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 ]

3. Πρόσθεσε ένα χαρτί στην τράπουλα

Υλοποίησε τη συνάρτηση addCard που επιστρέφει μια τράπουλα με το νέο χαρτί προστεμένο.

addCard 8 ( Array.fromList [ 5, 9, 7, 1 ] )
    --> Array.fromList [ 5, 9, 7, 1, 8 ]

4. Αφαίρεσε ένα χαρτί από την τράπουλα

Υλοποίησε τη συνάρτηση 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 ]

5. Μέτρησε τον αριθμό των ζυγών χαρτιών στην τράπουλα

Υλοποίησε τη συνάρτηση evenCardCount που μετράει τον αριθμό των ζυγών χαρτιών στην τράπουλα.

evenCardCount (Array.fromList [ 3, 8, 4, 5, 1, 6, 10 ] )
    --> 4
Επεξεργασία μέσω GitHub Ο σύνδεσμος ανοίγει σε νέο παράθυρο ή καρτέλα
Elm Exercism

Έτοιμος να ξεκινήσεις την άσκηση Μαθητευόμενος μάγος;

Γράψου στο Exercism για να μάθεις και να κατακτήσεις Elm με 28 έννοιες110 ασκήσεις και πραγματική καθοδήγηση από ανθρώπους, όλα δωρεάν.