ট্র্যাক
/
Elixir
Elixir
/
সিলেবাস
/
অ্যানোনিমাস ফাংশন
অ্

অ্যানোনিমাস ফাংশন মধ্যে Elixir

4টি অনুশীলনী

অ্যানোনিমাস ফাংশন সম্পর্কে

অ্যানোনিমাস ফাংশন এলিক্সিরের সর্বত্রই ব্যবহৃত হয়, কখনও নিজে নিজে, কখনও রিটার্ন ভ্যালু হিসেবে, আবার কখনও Enum.map/2-এর মতো হায়ার-অর্ডার ফাংশনের আর্গুমেন্ট হিসেবে:

Enum.map([1, 2, 3], fn n -> n + 1 end)
# => [2, 3, 4]

এলিক্সিরে ফাংশনকে ফার্স্ট-ক্লাস নাগরিক হিসেবে ধরা হয়:

  • নেমড ও অ্যানোনিমাস ফাংশন ভ্যারিয়েবলে অ্যাসাইন করা যায়।
  • নেমড ও অ্যানোনিমাস ফাংশন ডেটার মতোই আর্গুমেন্ট ও রিটার্ন ভ্যালু হিসেবে এক জায়গা থেকে আরেক জায়গায় পাঠানো যায়।
  • অ্যানোনিমাস ফাংশন ডাইনামিকভাবেও তৈরি করা যায়।

অ্যানোনিমাস ফাংশন তৈরি করা হয় fn কিওয়ার্ড দিয়ে এবং কল করা হয় ডট (.) দিয়ে:

function_variable = fn n -> n + 1 end

function_variable.(1)
# => 2

& ক্যাপচার শর্টহ্যান্ড দিয়েও অ্যানোনিমাস ফাংশন তৈরি করা যায়।

  • শুরুতে থাকা & ক্যাপচার এক্সপ্রেশনটি কোথায় শুরু হচ্ছে তা বোঝায়।

  • &1, &2 ইত্যাদি অ্যানোনিমাস ফাংশনের পজিশনাল আর্গুমেন্ট বোঝায়।

    # Instead of:
    fn x, y -> abs(x) + abs(y) end
    
    # We can write:
    &(abs(&1) + abs(&2))
    
  • & ক্যাপচার অপারেটর দিয়ে বিদ্যমান নেমড ফাংশনও ক্যাপচার করা যায়:

    # Instead of:
    fn a, b -> a <= b end
    
    # We can capture the function using its name and arity:
    &<=/2
    

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

y = 2

square = fn ->
  x = 3
  x * y
end

square.()
# => 6

x
# => ** (CompileError): undefined function x/0
GitHub-এর মাধ্যমে সম্পাদনা করুন লিংকটি নতুন একটি উইন্ডো বা ট্যাবে খুলবে

অ্যানোনিমাস ফাংশন শিখুন

অনুশীলন লক করা আছে

অ্যানোনিমাস ফাংশন অনুশীলন করতে আরও ১টি অনুশীলনী আনলক করুন