Μια List στην Elm είναι μια αμετάβλητη συλλογή από μηδέν ή περισσότερες τιμές του ίδιου τύπου.
Οι λίστες μπορούν να οριστούν ως εξής:
empty = []
singleValue = [ 5 ]
threeValues = [ "a", "b", "c" ]
Ο πιο συνηθισμένος τρόπος για να προσθέσεις ένα στοιχείο σε μια λίστα είναι μέσω του τελεστή :: (cons):
twoToFour = [ 2, 3, 4 ]
oneToFour = 1 :: twoToFour --> [ 1, 2, 3, 4 ]
Οι λίστες χειρίζονται με συναρτήσεις και τελεστές που ορίζονται στην ενότητα List ή με αντιστοίχιση προτύπων
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"
Σε αυτή την άσκηση θα γράψεις κώδικα για να κρατάς λίστα με τις γλώσσες προγραμματισμού που θέλεις να μάθεις στο Exercism. Έχεις έξι εργασίες, οι οποίες όλες θα έχουν να κάνουν με λίστες.
Για να κρατάς λίστα με τις γλώσσες που θέλεις να μάθεις, θα χρειαστεί να δημιουργήσεις μια νέα λίστα.
Όρισε τη σταθερά newList που περιέχει μια νέα, κενή λίστα.
newList
--> []
Αυτή τη στιγμή, έχεις ένα χαρτί όπου είναι γραμμένες οι γλώσσες που θέλεις να μάθεις: Elm, Clojure και Haskell.
Όρισε τη σταθερά existingList ώστε να αναπαριστά αυτή τη λίστα.
existingList
--> [ "Elm", "Clojure", "Haskell" ]
Καθώς εξερευνάς το Exercism και βρίσκεις πιο ενδιαφέρουσες γλώσσες, θέλεις να τις προσθέσεις στη λίστα σου.
Υλοποίησε τη συνάρτηση addLanguage για να προσθέτεις μια νέα γλώσσα στην αρχή της λίστας σου.
addLanguage "TypeScript" [ "JavaScript", "CoffeeScript" ]
--> [ "TypeScript", "JavaScript", "CoffeeScript" ]
Το να μετράς τις γλώσσες με το χέρι είναι άβολο.
Υλοποίησε τη συνάρτηση countLanguages για να μετράς το πλήθος των γλωσσών στη λίστα σου.
countLanguages [ "C#", "Racket", "Rust", "Ruby" ]
--> 4
Κάποια στιγμή, συνειδητοποιείς ότι η λίστα σου είναι στην πραγματικότητα ταξινομημένη ανάποδα!
Υλοποίησε τη συνάρτηση reverseList για να αντιστρέψεις τη λίστα σου.
reverseList [ "Prolog", "C", "Idris", "Assembly" ]
--> [ "Assembly", "Idris", "C", "Prolog" ]
Αν και αγαπάς όλες τις γλώσσες, η Elm έχει μια ξεχωριστή θέση στην καρδιά σου. Έτσι, ενθουσιάζεσαι πραγματικά με μια λίστα γλωσσών αν:
Υλοποίησε τη συνάρτηση excitingList για να ελέγχεις αν μια λίστα γλωσσών είναι συναρπαστική:
excitingList [ "Nim", "Elm" ]
--> True
Γράψου στο Exercism για να μάθεις και να κατακτήσεις Elm με 28 έννοιες110 ασκήσεις και πραγματική καθοδήγηση από ανθρώπους, όλα δωρεάν.