ট্র্যাক
/
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টি অনুশীলনী আর সত্যিকারের মানুষের মেন্টরিং দিয়ে শিখুন ও দক্ষ হয়ে উঠুন, সম্পূর্ণ বিনামূল্যে।