Elixir-এ একটি ফাংশনে একাধিক ক্লজ থাকতে পারে। এটি সম্ভব হয় ফাংশনের আর্গুমেন্টগুলো প্যাটার্ন ম্যাচ করে এবং গার্ড ব্যবহার করে।
# pattern matching the argument
def number(7) do
"Awesome, that's my favorite"
end
# using a guard
def number(n) when is_integer(n) do
"That's not my favorite"
end
def number(_n) do
"That's not even a number!"
end
FunctionClauseError রেইজ করে।_ বসানো উচিত, নইলে কম্পাইলার একটি ওয়ার্নিং দেয়।fn
13 -> "Awesome, that's my favorite"
_ -> "That's not my favorite"
end
মনে রাখবেন, একাধিক ক্লজযুক্ত ফাংশনকে অন্য প্রোগ্রামিং ভাষা থেকে আপনি যেই ফাংশন ওভারলোডিং চেনেন তার সাথে গুলিয়ে ফেলা উচিত নয়। Elixir-এ ফাংশন চিহ্নিত করা হয় শুধু তার নাম আর অ্যারিটি দিয়ে, আর্গুমেন্টের টাইপ দিয়ে নয় (কারণ এখানে স্ট্যাটিক টাইপিং নেই)। উদাহরণের number/1 ফাংশনটিকে একটি মাত্র ফাংশন হিসেবেই ধরা হয়, তাতে কতগুলো ক্লজ আছে সেটা যাই হোক না কেন।