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
}
এই অনুশীলনীতে আপনি আপনার প্রিয় রান্নার বই থেকে দুর্দান্ত একটি লাসাগনা রান্না করতে সাহায্য করার জন্য কিছু কোড লিখবেন।
আপনার পাঁচটি কাজ আছে, সবগুলোই লাসাগনা রান্নায় ব্যয় হওয়া সময়ের সাথে সম্পর্কিত।
expected_minutes_in_oven ফাংশনটি ডিফাইন করুন, যেটি কোনো আর্গুমেন্ট নেয় না এবং লাসাগনাটি ওভেনে কত মিনিট থাকা উচিত তা রিটার্ন করে। রান্নার বই অনুযায়ী, প্রত্যাশিত ওভেন সময় ৪০ মিনিট:
expected_minutes_in_oven()
// -> 40
remaining_minutes_in_oven ফাংশনটি ডিফাইন করুন, যেটি আর্গুমেন্ট হিসেবে লাসাগনাটি ওভেনে এখন পর্যন্ত যত মিনিট থেকেছে সেই সময় মিনিটে নেয় এবং আগের কাজের প্রত্যাশিত ওভেন সময়ের ভিত্তিতে লাসাগনাটি ওভেনে আর কত মিনিট থাকতে হবে তা রিটার্ন করে।
remaining_minutes_in_oven(30)
// -> 10
preparation_time_in_minutes ফাংশনটি ডিফাইন করুন, যেটি আর্গুমেন্ট হিসেবে লাসাগনায় আপনার যোগ করা স্তরের সংখ্যা নেয় এবং লাসাগনা প্রস্তুত করতে আপনার কত মিনিট লেগেছে তা রিটার্ন করে, ধরে নিয়ে যে প্রতিটি স্তর প্রস্তুত করতে আপনার ২ মিনিট লাগে।
preparation_time_in_minutes(2)
// -> 4
total_time_in_minutes ফাংশনটি ডিফাইন করুন, যেটি দুটি আর্গুমেন্ট নেয়: প্রথম আর্গুমেন্ট হলো লাসাগনায় আপনার যোগ করা স্তরের সংখ্যা, এবং দ্বিতীয় আর্গুমেন্ট হলো লাসাগনাটি ওভেনে এখন পর্যন্ত যত মিনিট থেকেছে সেই সংখ্যা। ফাংশনটির রিটার্ন করা উচিত লাসাগনা রান্না করতে আপনি মোট কত মিনিট কাজ করেছেন তা, যা মিনিটে প্রস্তুতির সময় এবং এই মুহূর্তে লাসাগনাটি ওভেনে যত মিনিট কাটিয়েছে তার যোগফল।
total_time_in_minutes(3, 10)
// -> 16
alarm ফাংশনটি ডিফাইন করুন, যেটি কোনো আর্গুমেন্ট নেয় না এবং লাসাগনা খাওয়ার জন্য তৈরি হয়েছে এই মর্মে একটি বার্তা রিটার্ন করে।
alarm()
// -> "Ding!"
Exercism-এ সাইন আপ করুন, Gleam ট্র্যাকের 33টি কনসেপ্ট122টি অনুশীলনী আর সত্যিকারের মানুষের মেন্টরিং দিয়ে শিখুন ও দক্ষ হয়ে উঠুন, সম্পূর্ণ বিনামূল্যে।