Borospince

Borospince

Tanulófeladat

Bevezetés

Címkézett argumentumok

Előfordul, hogy ha egy függvény sok argumentumot vár, nehéz megjegyezni, milyen sorrendben kell megadni őket. Az olvashatóság érdekében a Gleam lehetővé teszi, hogy az argumentumokat névvel címkézd meg.

Egy argumentum címkézéséhez a címke nevét az argumentum neve elé írd, szóközzel elválasztva.

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

Ha egy függvényt címkézett argumentumokkal hívsz meg, az argumentumokat tetszőleges sorrendben megadhatod. Az alábbi replace hívások mindegyike egyenértékű:

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

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

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

A címkék mindig opcionálisak. Attól még, hogy egy függvénynek címkézett argumentumai vannak, címkék nélkül is meghívhatod.

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

Utasítások

Egy elegáns étterem menedzsere vagy, amelynek tekintélyes borospincéje van. A vendégeid közül sokan igényes borrajongók. Nem könnyű feladat megtalálni a megfelelő üveg bort egy adott vendég számára.

Technikailag felkészült étteremtulajdonosként úgy döntöttél, hogy felgyorsítod a borkiválasztás folyamatát: írsz egy alkalmazást, amellyel a vendégek az ízlésük szerint szűrhetik a boraidat.

1. Keresd ki az összes adott színű bort

Egy üveg bort egy egyedi típus reprezentál, a borokat pedig egy listában tároljuk.

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

Valósítsd meg a wines_of_color függvényt. Egy borokból álló listát kap, és visszaadja az adott színű összes bort.

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. Keresd ki az összes bort egy adott országból

Valósítsd meg a wines_from_country függvényt. Egy borokból álló listát kap, és visszaadja az adott országból származó összes bort.

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. Keresd ki az adott országban palackozott, adott színű borokat

Valósítsd meg a filter függvényt. Egy borokból álló listát, egy színt és egy országot kap, és visszaadja az adott országban palackozott, adott színű borokat.

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),
// ]
Szerkesztés GitHubon A hivatkozás új ablakban vagy lapon nyílik meg
Gleam Exercism

Készen állsz elkezdeni a(z) Borospince feladatot?

Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) Gleam nyelvet 33 fogalom122 feladat segítségével, valódi emberi mentorálással, mindez ingyen.