Function Definition এবং Parameters in Elixir
Elixir একটি ফাংশনাল প্রোগ্রামিং ভাষা, এবং ফাংশনগুলি Elixir প্রোগ্রামে অন্যতম মৌলিক উপাদান। Elixir তে ফাংশন ডিফাইন (define) করার মাধ্যমে আমরা নির্দিষ্ট কিছু কাজ সম্পাদন করতে পারি, এবং ফাংশনের parameters এর মাধ্যমে ইনপুট হিসাবে ডেটা গ্রহণ করতে পারি।
এখানে function definition এবং parameters সম্পর্কে বিস্তারিত আলোচনা করা হল।
Function Definition in Elixir
Elixir এ ফাংশন ডিফাইন করতে def কিওয়ার্ড ব্যবহার করা হয়। ফাংশনটি একটি নির্দিষ্ট কাজ বা লজিক সম্পাদন করবে এবং আমরা ফাংশনটির নাম, আর্গুমেন্টস এবং কোড ব্লক নির্ধারণ করি।
বেসিক ফাংশন ডিফাইন:
defmodule MyModule do
def greet do
IO.puts("Hello, Elixir!")
end
endএখানে:
defmodule: একটি মডিউল ডিফাইন করছে, যেখানে ফাংশন ডিফাইন করা হবে।def greet: এখানেgreetহল ফাংশনের নাম এবং এই ফাংশনটি কোন প্যারামিটার ছাড়া ডিফাইন করা হয়েছে।IO.puts("Hello, Elixir!"): ফাংশনটি কল হলে এটি কনসোলে"Hello, Elixir!"প্রিন্ট করবে।
ফাংশনটিকে রান করতে:
MyModule.greet() # Output: Hello, Elixir!Parameters in Elixir Functions
ফাংশনের সাথে parameters যোগ করলে আমরা সেই ফাংশনে আর্গুমেন্ট হিসেবে ডেটা পাঠাতে পারি। Elixir তে ফাংশনে প্যারামিটারগুলি প্রয়োজনীয় ইনপুট ডেটা হিসেবে ব্যবহৃত হয়।
ফাংশন প্যারামিটার সহ ডিফাইন:
defmodule MyModule do
def greet(name) do
IO.puts("Hello, #{name}!")
end
endএখানে:
name: এটি একটি প্যারামিটার, যা ফাংশনের ইনপুট হিসেবে ব্যবহৃত হবে।- ফাংশনটি কল করার সময়, আমরা একটি মান প্রদান করবো যা
nameপ্যারামিটার হিসাবে ব্যবহৃত হবে।
ফাংশনটি কল করলে:
MyModule.greet("Alice") # Output: Hello, Alice!এখানে, "Alice" হল name প্যারামিটার এর মান। ফাংশনটি সেই মান ব্যবহার করে আউটপুট প্রদর্শন করে।
Multiple Parameters in Elixir
একই ফাংশনে একাধিক প্যারামিটারও ব্যবহার করা যেতে পারে। Elixir তে একাধিক প্যারামিটার ফাংশনের মধ্যে কমা দিয়ে পৃথক করা হয়।
একাধিক প্যারামিটার সহ ফাংশন:
defmodule MyModule do
def add(a, b) do
a + b
end
endএখানে:
aএবংbদুটি প্যারামিটার, যা ফাংশনটি গ্রহণ করবে।- ফাংশনটি দুটি সংখ্যা যোগ করে সেই মান রিটার্ন করবে।
ফাংশনটি কল করলে:
result = MyModule.add(5, 3)
IO.puts(result) # Output: 8এখানে, ফাংশন add দুটি আর্গুমেন্ট গ্রহণ করে, 5 এবং 3, এবং তাদের যোগফল হিসেবে 8 রিটার্ন করে।
Default Parameters in Elixir
Elixir তে একটি ফাংশনে প্যারামিটারগুলির জন্য ডিফল্ট মান (default value) নির্ধারণ করা যায়। যদি ফাংশন কল করার সময় প্যারামিটারটি প্রদান না করা হয়, তবে ডিফল্ট মান ব্যবহৃত হবে।
ডিফল্ট প্যারামিটার সহ ফাংশন:
defmodule MyModule do
def greet(name \\ "Guest") do
IO.puts("Hello, #{name}!")
end
endএখানে:
name \\ "Guest": এই প্যারামিটারটি"Guest"নামে ডিফল্ট মান পেয়েছে।- যদি ফাংশন কল করার সময় আর্গুমেন্ট না দেওয়া হয়, তবে
"Guest"ডিফল্ট মান হিসেবে ব্যবহৃত হবে।
ফাংশনটি কল করলে:
MyModule.greet() # Output: Hello, Guest!
MyModule.greet("Alice") # Output: Hello, Alice!এখানে, প্রথম কলের ক্ষেত্রে কোন আর্গুমেন্ট না দেয়ায় "Guest" ডিফল্ট মান ব্যবহৃত হয়েছে।
Named Parameters and Keyword Lists
Elixir তে keyword lists ব্যবহার করে আপনি প্যারামিটারগুলির জন্য নাম নির্ধারণ করতে পারেন, যা প্যারামিটারগুলির অর্ডার ছাড়া ফাংশনকে কল করার সুবিধা দেয়।
Named Parameters with Keyword Lists:
defmodule MyModule do
def greet(name: name, age: age) do
IO.puts("Hello, #{name}! You are #{age} years old.")
end
endএখানে, ফাংশনটি দুটি named parameter (name এবং age) গ্রহণ করবে।
ফাংশনটি কল করলে:
MyModule.greet(name: "Alice", age: 30)
# Output: Hello, Alice! You are 30 years old.এখানে, আপনি keyword list ব্যবহার করে প্যারামিটারগুলির মান প্রদান করেছেন।
Anonymous Functions (Lambdas)
Elixir তে anonymous functions বা lambdas ব্যবহার করা হয় যেখানে ফাংশনকে কোন নাম ছাড়া নির্দিষ্ট একটি কাজ সম্পাদন করতে বলা হয়।
Anonymous Function Definition:
add = fn a, b -> a + b end
IO.puts(add.(2, 3)) # Output: 5এখানে:
fn a, b -> a + b endএকটি অ্যানোনিমাস ফাংশন যা দুটি প্যারামিটার গ্রহণ করে এবং তাদের যোগফল প্রদান করে।
সারসংক্ষেপ
| ফিচার | বর্ণনা | উদাহরণ |
|---|---|---|
| Function Definition | ফাংশন তৈরি করা, যেখানে কোডের একটি ব্লক একটি নির্দিষ্ট কাজ সম্পাদন করে | def greet do IO.puts("Hello") end |
| Parameters | ফাংশনে প্যারামিটার ব্যবহার করা, যাতে ইনপুট ডেটা গ্রহণ করা যায় | def greet(name) do IO.puts(name) end |
| Multiple Parameters | একাধিক প্যারামিটার ব্যবহার করা | def add(a, b) do a + b end |
| Default Parameters | ডিফল্ট প্যারামিটার নির্ধারণ করা | def greet(name \\ "Guest") do IO.puts(name) end |
| Named Parameters | প্যারামিটার নাম সহ ফাংশন কল করা | def greet(name: name, age: age) do IO.puts(name) end |
| Anonymous Functions (Lambdas) | নামহীন ফাংশন ব্যবহার করা, যা ফাংশন হিসেবে একটি পরিবর্তনশীল ভেরিয়েবল | add = fn a, b -> a + b end |
এভাবে Elixir তে ফাংশন ডিফাইন এবং প্যারামিটার ব্যবহারের মাধ্যমে আপনি খুব সহজেই কোডের পুনঃব্যবহারযোগ্যতা এবং কার্যকারিতা বাড়াতে পারেন।
Read more