লাসাগনা

লাসাগনা

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

ভূমিকা

মৌলিক বিষয়

ফাংশন

Gleam-এ ফাংশন ডিফাইন করা হয় pub fn সিনট্যাক্স দিয়ে।

pub fn add(x: Int, y: Int) -> Int {
  x + y
}

এই ফাংশনটি দুটি আর্গুমেন্ট নেয়, দুটিই Int টাইপের, এবং Int টাইপের একটি মান রিটার্ন করে। Gleam-এ কোনো return কিওয়ার্ড নেই, ফাংশনের শেষ এক্সপ্রেশনের মান সবসময় অন্তর্নিহিতভাবে রিটার্ন করা হয়।

আর্গুমেন্টের টাইপ অ্যানোটেশন আর রিটার্ন টাইপ ঐচ্ছিক, এবং Gleam সবসময় আপনার কোডের সম্পূর্ণ টাইপ চেক করবে। সাধারণত Gleam প্রোগ্রামাররা স্পষ্টতার জন্য তাঁদের ফাংশনে টাইপ অ্যানোটেশন দিয়ে থাকেন, তবে আপনি চাইলে সেগুলো বাদ দিতে পারেন।

pub fn add(x, y) {
  x + y
}

function_name(argument1, argument2) সিনট্যাক্স দিয়ে একটি ফাংশন কল করা যায়।

pub fn double(x: Int) -> Int {
  // Call the add function defined above
  add(x, x)
}

ভ্যারিয়েবল

Gleam-এ ভ্যারিয়েবল ডিফাইন করা হয় let name = expression সিনট্যাক্স দিয়ে।

pub fn main() {
  let count = 1
}

ভ্যারিয়েবল টাইপ অ্যানোটেশনসহ ঘোষণা করা যায়। ফাংশনের আর্গুমেন্টের মতো এগুলোও ঐচ্ছিক, যদিও বেশিরভাগ Gleam প্রোগ্রামার সংক্ষিপ্ততার জন্য ভ্যারিয়েবলের টাইপ অ্যানোটেশন বাদ দিয়ে থাকেন।

pub fn main() {
  let count: Int = 1
}

স্ট্রিং লিটারাল

Gleam-এ স্ট্রিং লেখা হয় ডাবল কোট দিয়ে।

pub fn greeting() {
  "Hello, world!"
}

কোড কমেন্ট

সোর্স কোড পড়া অন্য ডেভেলপারদের জন্য নোট রেখে যেতে কমেন্ট ব্যবহার করা যায়। Gleam-এ কমেন্ট হলো একক লাইন, যার আগে // থাকে।

pub fn main() {
  // This is a comment
  let x = 1
}

নির্দেশনা

এই অনুশীলনীতে আপনি আপনার প্রিয় রান্নার বই থেকে দুর্দান্ত একটি লাসাগনা রান্না করতে সাহায্য করার জন্য কিছু কোড লিখবেন।

আপনার পাঁচটি কাজ আছে, সবগুলোই লাসাগনা রান্নায় ব্যয় হওয়া সময়ের সাথে সম্পর্কিত।

1. মিনিটে প্রত্যাশিত ওভেন সময় ডিফাইন করুন

expected_minutes_in_oven ফাংশনটি ডিফাইন করুন, যেটি কোনো আর্গুমেন্ট নেয় না এবং লাসাগনাটি ওভেনে কত মিনিট থাকা উচিত তা রিটার্ন করে। রান্নার বই অনুযায়ী, প্রত্যাশিত ওভেন সময় ৪০ মিনিট:

expected_minutes_in_oven()
// -> 40

2. মিনিটে অবশিষ্ট ওভেন সময় গণনা করুন

remaining_minutes_in_oven ফাংশনটি ডিফাইন করুন, যেটি আর্গুমেন্ট হিসেবে লাসাগনাটি ওভেনে এখন পর্যন্ত যত মিনিট থেকেছে সেই সময় মিনিটে নেয় এবং আগের কাজের প্রত্যাশিত ওভেন সময়ের ভিত্তিতে লাসাগনাটি ওভেনে আর কত মিনিট থাকতে হবে তা রিটার্ন করে।

remaining_minutes_in_oven(30)
// -> 10

3. মিনিটে প্রস্তুতির সময় গণনা করুন

preparation_time_in_minutes ফাংশনটি ডিফাইন করুন, যেটি আর্গুমেন্ট হিসেবে লাসাগনায় আপনার যোগ করা স্তরের সংখ্যা নেয় এবং লাসাগনা প্রস্তুত করতে আপনার কত মিনিট লেগেছে তা রিটার্ন করে, ধরে নিয়ে যে প্রতিটি স্তর প্রস্তুত করতে আপনার ২ মিনিট লাগে।

preparation_time_in_minutes(2)
// -> 4

4. মিনিটে মোট কাজের সময় গণনা করুন

total_time_in_minutes ফাংশনটি ডিফাইন করুন, যেটি দুটি আর্গুমেন্ট নেয়: প্রথম আর্গুমেন্ট হলো লাসাগনায় আপনার যোগ করা স্তরের সংখ্যা, এবং দ্বিতীয় আর্গুমেন্ট হলো লাসাগনাটি ওভেনে এখন পর্যন্ত যত মিনিট থেকেছে সেই সংখ্যা। ফাংশনটির রিটার্ন করা উচিত লাসাগনা রান্না করতে আপনি মোট কত মিনিট কাজ করেছেন তা, যা মিনিটে প্রস্তুতির সময় এবং এই মুহূর্তে লাসাগনাটি ওভেনে যত মিনিট কাটিয়েছে তার যোগফল।

total_time_in_minutes(3, 10)
// -> 16

5. লাসাগনা তৈরি হয়েছে জানিয়ে একটি নোটিফিকেশন তৈরি করুন

alarm ফাংশনটি ডিফাইন করুন, যেটি কোনো আর্গুমেন্ট নেয় না এবং লাসাগনা খাওয়ার জন্য তৈরি হয়েছে এই মর্মে একটি বার্তা রিটার্ন করে।

alarm()
// -> "Ding!"
GitHub-এর মাধ্যমে সম্পাদনা করুন লিংকটি একটি নতুন উইন্ডো বা ট্যাবে খোলে
Gleam Exercism

লাসাগনা শুরু করতে প্রস্তুত?

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