ট্র্যাক
/
Gleam
Gleam
/
অনুশীলনী
/
ট্র্যাক অন ট্র্যাক অন ট্র্যাক
ট্র্যাক অন ট্র্যাক অন ট্র্যাক

ট্র্যাক অন ট্র্যাক অন ট্র্যাক

লার্নিং অনুশীলনী

ভূমিকা

অ্যারে

Gleam-এ একটি অ্যারে হলো শূন্য বা তার বেশি মানের একটি অপরিবর্তনীয় সংগ্রহ। একটি অ্যারের সব মানের টাইপ একই হতে হবে। যেহেতু অ্যারে অপরিবর্তনীয়, তাই একবার একটি অ্যারে তৈরি হয়ে গেলে তার মান আর কখনোই বদলানো যায় না। যে ফাংশন বা অপারেটরগুলো একটি অ্যারে বদলে দিচ্ছে বলে মনে হয় (যেমন একটি এলিমেন্ট যোগ করা), তারা আসলে একটি নতুন অ্যারে রিটার্ন করে।

অ্যারে এভাবে ডিফাইন করা যায়:

let empty = []
let singleValue = [5]
let threeValues = ["a", "b", "c"]

অ্যারেতে একটি এলিমেন্ট যোগ করার সবচেয়ে কমন উপায় হলো স্প্রেড সিনট্যাক্স:

let two_to_four = [2, 3, 4]
let one_to_four = [1, ..two_to_four]
// -> [1, 2, 3, 4]

Gleam স্ট্যান্ডার্ড লাইব্রেরির gleam/list মডিউলটিতে অ্যারে নিয়ে কাজ করার জন্য অনেক কাজের ফাংশন আছে। এই মডিউলটি Gleam কোডে খুব কমনভাবে ব্যবহার করা হয়, তাই এর সাথে পরিচিত থাকা ভালো।

case এক্সপ্রেশনে অ্যারে প্যাটার্ন ব্যবহার করে অ্যারের সাথে ম্যাচ করা যায় এবং তার ভেতরের মানগুলো ভ্যারিয়েবলে অ্যাসাইন করা যায়:

pub fn describe(list: List(String)) -> String {
  case list {
    [] -> "Empty list"
    [x] -> "List with one item: " <> x
    [x, y] -> "List with two items: " <> x <> " and " <> y
    _ -> "List with three or more items"
  }
}

নির্দিষ্ট দৈর্ঘ্যের অ্যারের সাথে ম্যাচ করার পাশাপাশি, স্প্রেড সিনট্যাক্স দিয়ে কমপক্ষে একটি নির্দিষ্ট দৈর্ঘ্যের অ্যারের সাথে ম্যাচ করা যায়:

pub fn describe(list: List(String)) -> String {
  case list {
    [_, _, ..] -> "List with at least two items"
    [_] -> "List with one item"
    [] -> "Empty list"
  }
}

স্প্রেড সিনট্যাক্স দিয়ে অ্যারের বাকি অংশটি একটি ভ্যারিয়েবলে অ্যাসাইন করাও যায়:

pub fn remove_first_item(list: List(String)) -> List(String) {
  case list {
    // Return the list without the first item
    [_, ..rest] -> rest

    // There's no first item to remove, return an empty list
    _ -> []
  }
}

যে টাইপের সাথে ম্যাচ করা হচ্ছে, তার প্রতিটি সম্ভাব্য মানের জন্যই case এক্সপ্রেশনে একটি প্যাটার্ন থাকা উচিত, তাই বাকি মানগুলো সামলাতে বেশিরভাগ সময় শেষে একটি ডিসকার্ড প্যাটার্ন (_) ব্যবহার করা হয়।

নির্দেশনা

এই অনুশীলনীতে আপনি Exercism-এ যে প্রোগ্রামিং ভাষাগুলো শিখতে চান, সেগুলোর একটি অ্যারের হিসাব রাখার কোড লিখবেন।

আপনার ছয়টি কাজ আছে, যার প্রতিটিতেই অ্যারে নিয়ে কাজ করতে হবে।

1. একটি নতুন অ্যারে তৈরি করুন

আপনি যে ভাষাগুলো শিখতে চান সেগুলোর হিসাব রাখতে হলে আপনাকে একটি নতুন অ্যারে তৈরি করতে হবে। new_list ফাংশনটি ডিফাইন করুন, যা একটি নতুন, খালি অ্যারে রিটার্ন করে।

new_list()
// -> []

2. একটি বিদ্যমান অ্যারে ডিফাইন করুন

এই মুহূর্তে আপনার কাছে একটি কাগজ আছে, যেখানে আপনি যে ভাষাগুলো শিখতে চান সেগুলো লেখা আছে: Gleam, Go আর TypeScript। এই অ্যারেটি রিটার্ন করার জন্য existing_list ফাংশনটি ডিফাইন করুন।

existing_list()
// -> ["Gleam", "Go", "TypeScript"]

3. অ্যারেতে একটি নতুন ভাষা যোগ করুন

Exercism ঘুরে ঘুরে যখন আরও মজার ভাষা খুঁজে পাবেন, তখন সেগুলো আপনার অ্যারেতে যোগ করতে চাইবেন। আপনার অ্যারের শুরুতে একটি নতুন ভাষা যোগ করার জন্য add_language ফাংশনটি ইমপ্লিমেন্ট করুন।

add_language(["OCaml", "Elixir"], "Scheme")
// -> ["Scheme", "OCaml", "Elixir"]

4. অ্যারেতে ভাষাগুলো গুনুন

একটি একটি করে ভাষা গোনা অসুবিধাজনক। আপনার অ্যারেতে কতগুলো ভাষা আছে তা গোনার জন্য count_languages ফাংশনটি ইমপ্লিমেন্ট করুন।

count_languages(["jq", "Elm", "Rust", "Kotlin"])
// -> 4

5. অ্যারেটি উল্টে দিন

একসময় আপনি বুঝতে পারবেন, আপনার অ্যারেটি আসলে উল্টো ক্রমে সাজানো! আপনার অ্যারে উল্টে দেওয়ার জন্য reverse_list ফাংশনটি ইমপ্লিমেন্ট করুন।

reverse_list(["Python", "Julia", "Idris", "COBOL"])
// -> ["COBOL", "Idris", "Julia", "Python"]

6. অ্যারেটি উত্তেজনাপূর্ণ কিনা যাচাই করুন

সব ভাষাই আপনার ভালো লাগে, তবে Gleam-এর জন্য আপনার মনে একটি বিশেষ জায়গা আছে। তাই ভাষার একটি অ্যারে আপনার কাছে সত্যিই উত্তেজনাপূর্ণ যদি:

  • অ্যারেতে প্রথমটি Gleam হয়।
  • অ্যারেতে দ্বিতীয়টি Gleam হয় এবং অ্যারেতে দুটি বা তিনটি ভাষা থাকে।

ভাষার একটি অ্যারে উত্তেজনাপূর্ণ কিনা তা যাচাই করতে exciting_list ফাংশনটি ইমপ্লিমেন্ট করুন:

exciting_list(["Lua", "Gleam"])
// -> True
GitHub-এর মাধ্যমে সম্পাদনা করুন লিংকটি একটি নতুন উইন্ডো বা ট্যাবে খোলে
Gleam Exercism

ট্র্যাক অন ট্র্যাক অন ট্র্যাক শুরু করতে প্রস্তুত?

Exercism-এ সাইন আপ করুন, Gleam ট্র্যাকের 33টি কনসেপ্ট122টি অনুশীলনী আর সত্যিকারের মানুষের মেন্টরিং দিয়ে শিখুন ও দক্ষ হয়ে উঠুন, সম্পূর্ণ বিনামূল্যে।