এন

এনাম মধ্যে Elixir

98টি অনুশীলনী

এনাম সম্পর্কে

Enum একটি অত্যন্ত কাজের মডিউল, যা এনুমারেবল নিয়ে কাজ করার জন্য একগুচ্ছ অ্যালগরিদম সরবরাহ করে। এটি দিয়ে করা যায়:

আরও অনেক কিছু! সম্পূর্ণ তালিকার জন্য Enum মডিউলের ডকুমেন্টেশন দেখুন।

Enumerable

সাধারণভাবে, একটি এনুমারেবল হলো এমন যেকোনো ডেটা যার উপর ইটারেট করা যায়, অর্থাৎ একটি কালেকশন। Elixir-এ, এনুমারেবল হলো এমন যেকোনো ডেটা টাইপ যা Enumerable প্রোটোকল ইমপ্লিমেন্ট করে। সেগুলো হলো:

এগুলোর সবগুলো এখনো না জানলেও চিন্তার কিছু নেই।

যে কেউ নিজের কাস্টম ডেটা স্ট্রাকচারের জন্য Enumerable প্রোটোকল ইমপ্লিমেন্ট করতে পারে।

Reduce

Enum.reduce/2 দিয়ে আপনি পুরো এনুমারেবলটিকে একটি মাত্র মানে reduce করতে পারেন। এটি করতে অ্যাকুমুলেটর নামের একটি বিশেষ ভ্যারিয়েবল ব্যবহার করা হয়। অ্যাকুমুলেটর ইটারেশনগুলোর মাঝে রিডাকশনের মধ্যবর্তী অবস্থা বহন করে। এই কারণেই এটি এনুমারেবলের জন্য সবচেয়ে শক্তিশালী ফাংশনগুলোর একটি। আরও অনেক বিশেষায়িত ফাংশনের কাজ এই বেশি সাধারণ reduce দিয়েই করা যেত। যেমন...

সর্বোচ্চ মান খোঁজা:

Enum.max([4, 20, 31, 9, 2])
# => 31

Enum.reduce([4, 20, 31, 9, 2], nil, fn x, acc ->
  cond do
    acc == nil -> x
    x > acc -> x
    x <= acc -> acc
  end
end)

# => 31

এমনকি ম্যাপিংও (তবে এর জন্য পরে ফলাফলটি উল্টে নিতে হয়):

Enum.map([1, 2, 3, 4, 5], fn x -> x + 10 end)
# => [11, 12, 13, 14, 15]

Enum.reduce([1, 2, 3, 4, 5], [], fn x, acc -> [x + 10 | acc] end)
# => [15, 14, 13, 12, 11]

ম্যাপের উপর ম্যাপিং

  • Map.new/2 দিয়ে:

    %{a: 1, b: 2}
    |> Map.new(fn {key, value} -> {key, value * 10} end)
    
  • Enum.into/3 দিয়ে:

    %{a: 1, b: 2}
    |> Enum.into(%{}, fn {key, value} -> {key, value * 10} end)
    
  • Enum.map/2 দিয়ে:

    %{a: 1, b: 2}
    |> Enum.map(fn {key, value} -> {key, value * 10} end)
    |> Enum.into(%{})
    
GitHub-এর মাধ্যমে সম্পাদনা করুন লিংকটি নতুন একটি উইন্ডো বা ট্যাবে খুলবে

এনাম শিখুন

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

এনাম অনুশীলন করতে আরও 10টি অনুশীলনী আনলক করুন