Διαδρομές
/
Gleam
Gleam
/
Ασκήσεις
/
Κάβα κρασιών
Κάβα κρασιών

Κάβα κρασιών

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

Εισαγωγή

Ορίσματα με ετικέτες

Μερικές φορές, όταν μια συνάρτηση δέχεται πολλά ορίσματα, μπορεί να είναι δύσκολο να θυμηθείς τη σειρά με την οποία πρέπει να δοθούν. Για χάρη της αναγνωσιμότητας, η Gleam επιτρέπει να βάζεις στα ορίσματα μια ετικέτα με όνομα.

Για να βάλεις ετικέτα σε ένα όρισμα, γράψε το όνομα της ετικέτας πριν από το όνομα του ορίσματος, χωρισμένα με ένα κενό.

pub fn replace(
  in string: String,
  each target: String,
  with replacement: String
) -> String {
  // ...
}

Όταν καλείς μια συνάρτηση με ορίσματα που έχουν ετικέτες, μπορείς να δώσεις τα ορίσματα με οποιαδήποτε σειρά. Κάθε μία από αυτές τις κλήσεις στη replace είναι ισοδύναμη:

replace(in: "🍔🍔🍔", each: "🍔", with: "🍕")

replace(each: "🍔", in: "🍔🍔🍔", with: "🍕")

replace(with: "🍕", each: "🍔", in: "🍔🍔🍔")

Οι ετικέτες είναι πάντα προαιρετικές. Ακόμα κι αν μια συνάρτηση έχει ορίσματα με ετικέτες, μπορείς να την καλέσεις και χωρίς ετικέτες.

replace("🍔🍔🍔", "🍔", "🍕")

Οδηγίες

Είσαι ο διευθυντής ενός κομψού εστιατορίου που έχει ένα μεγάλο κελάρι κρασιών. Πολλοί από τους πελάτες σου είναι απαιτητικοί λάτρεις του κρασιού. Το να βρεις το σωστό μπουκάλι κρασί για έναν συγκεκριμένο πελάτη δεν είναι εύκολη υπόθεση.

Ως τεχνολογικά καταρτισμένος ιδιοκτήτης εστιατορίου, αποφάσισες να επιταχύνεις τη διαδικασία επιλογής κρασιού γράφοντας μια εφαρμογή που θα επιτρέπει στους επισκέπτες να φιλτράρουν τα κρασιά σου με βάση τις προτιμήσεις τους.

1. Βρες όλα τα κρασιά ενός δεδομένου χρώματος

Ένα μπουκάλι κρασί αναπαρίσταται με έναν προσαρμοσμένο τύπο, και τα κρασιά αποθηκεύονται σε μια λίστα.

[
  Wine("Chardonnay", 2015, "Italy", White),
  Wine("Pinot grigio", 2017, "Germany", White),
  Wine("Pinot noir", 2016, "France", Red),
  Wine("Dornfelder", 2018, "Germany", Rose)
]

Υλοποίησε τη συνάρτηση wines_of_color. Πρέπει να παίρνει μια λίστα με κρασιά και να επιστρέφει όλα τα κρασιά ενός δεδομένου χρώματος.

wines_of_color(
  [
    Wine("Chardonnay", 2015, "Italy", White),
    Wine("Pinot grigio", 2017, "Germany", White),
    Wine("Pinot noir", 2016, "France", Red),
    Wine("Dornfelder", 2018, "Germany", Rose)
  ],
  color: White
)
// -> [
//   Wine("Chardonnay", 2015, "Italy", White),
//   Wine("Pinot grigio", 2017, "Germany", White),
// ]

2. Βρες όλα τα μπουκάλια κρασιού σε μια δεδομένη χώρα

Υλοποίησε τη συνάρτηση wines_from_country. Πρέπει να παίρνει μια λίστα με κρασιά και να επιστρέφει όλα τα κρασιά από μια δεδομένη χώρα.

wines_from_country(
  [
    Wine("Chardonnay", 2015, "Italy", White),
    Wine("Pinot grigio", 2017, "Germany", White),
    Wine("Pinot noir", 2016, "France", Red),
    Wine("Dornfelder", 2018, "Germany", Rose)
  ],
  country: "Germany"
)
// -> [
//   Wine("Dornfelder", 2018, "Germany", Rose)
// ]

3. Βρες όλα τα κρασιά ενός δεδομένου χρώματος που εμφιαλώθηκαν σε μια δεδομένη χώρα

Υλοποίησε τη συνάρτηση filter. Πρέπει να παίρνει μια λίστα με κρασιά, ένα χρώμα και μια χώρα και να επιστρέφει όλα τα κρασιά του δεδομένου χρώματος που εμφιαλώθηκαν στη δεδομένη χώρα.

filter(
  [
    Wine("Chardonnay", 2015, "Italy", White),
    Wine("Pinot grigio", 2017, "Germany", White),
    Wine("Pinot noir", 2016, "France", Red),
    Wine("Dornfelder", 2018, "Germany", Rose)
  ],
  color: White
  country: "Italy"
)
// -> [
//   Wine("Chardonnay", 2015, "Italy", White),
// ]
Επεξεργασία μέσω GitHub Ο σύνδεσμος ανοίγει σε νέο παράθυρο ή καρτέλα
Gleam Exercism

Έτοιμος να ξεκινήσεις την άσκηση Κάβα κρασιών;

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