ট্র্যাক
/
Elixir
Elixir
/
অনুশীলনী
/
অ্যারে অপারেশন
অ্যারে অপারেশন

অ্যারে অপারেশন

মধ্যম

নির্দেশনা

মৌলিক অ্যারে অপারেশন ইমপ্লিমেন্ট করুন।

ফাংশনাল ভাষায় length, map, ও reduce-এর মতো অ্যারে অপারেশন খুবই কমন। বিদ্যমান ফাংশন ব্যবহার না করেই একগুচ্ছ মৌলিক অ্যারে অপারেশন ইমপ্লিমেন্ট করুন।

বিদ্যমান নামের সঙ্গে সংঘর্ষ এড়াতে যে অপারেশনগুলো ইমপ্লিমেন্ট করা হবে তার সঠিক সংখ্যা ও নাম track-এর উপর নির্ভর করবে, তবে আপনি যে সাধারণ অপারেশনগুলো ইমপ্লিমেন্ট করবেন সেগুলো হলো:

  • append (দুটি অ্যারে দেওয়া হলে, দ্বিতীয় অ্যারের সব এলিমেন্ট প্রথম অ্যারের শেষে যোগ করুন);
  • concatenate (একগুচ্ছ অ্যারে দেওয়া হলে, সব অ্যারের সব এলিমেন্ট একত্র করে একটি সমতল অ্যারে বানান);
  • filter (একটি প্রেডিকেট ও একটি অ্যারে দেওয়া হলে, যেসব এলিমেন্টের জন্য predicate(item) ট্রু হয় সেসব এলিমেন্টের অ্যারে রিটার্ন করুন);
  • length (একটি অ্যারে দেওয়া হলে, তার ভেতরে থাকা এলিমেন্টের মোট সংখ্যা রিটার্ন করুন);
  • map (একটি ফাংশন ও একটি অ্যারে দেওয়া হলে, সব এলিমেন্টে function(item) প্রয়োগ করার ফলাফলগুলোর অ্যারে রিটার্ন করুন);
  • foldl (একটি ফাংশন, একটি অ্যারে এবং একটি প্রাথমিক অ্যাকুমুলেটর দেওয়া হলে, বাম দিক থেকে প্রতিটি এলিমেন্ট অ্যাকুমুলেটরে ফোল্ড (রিডিউস) করুন);
  • foldr (একটি ফাংশন, একটি অ্যারে এবং একটি প্রাথমিক অ্যাকুমুলেটর দেওয়া হলে, ডান দিক থেকে প্রতিটি এলিমেন্ট অ্যাকুমুলেটরে ফোল্ড (রিডিউস) করুন);
  • reverse (একটি অ্যারে দেওয়া হলে, মূল সব এলিমেন্ট নিয়ে একটি অ্যারে রিটার্ন করুন, তবে উল্টো ক্রমে)।

লক্ষ্য করুন, ফোল্ড ফাংশনগুলোতে (foldl, foldr) আর্গুমেন্ট যে ক্রমে পাঠানো হয় সেটি গুরুত্বপূর্ণ।

Elixir-নির্দিষ্ট পরিবর্তন

এই অনুশীলনীর উপরের বর্ণনাটি Exercism-এর সব ট্র্যাকে একই রকম।

Elixir-এর স্ট্যান্ডার্ড লাইব্রেরির সাথে সঙ্গতিপূর্ণ রাখতে, foldl ও foldr-এ ব্যবহৃত ফাংশনগুলো প্রথম আর্গুমেন্ট হিসেবে এলিমেন্টটি এবং দ্বিতীয় আর্গুমেন্ট হিসেবে অ্যাকুমুলেটরটি নেবে।

এছাড়া, স্বয়ংক্রিয়ভাবে ইমপোর্ট হওয়া Kernel.length/1 ফাংশনের সাথে সংঘর্ষ এড়াতে, দৈর্ঘ্য গণনা করা ফাংশনটির নাম count রাখা হয়েছে।

ধীর টেস্ট

এই অনুশীলনীর একটি বা একাধিক টেস্ট :slow হিসেবে ট্যাগ করা হয়েছে, কারণ সেগুলো শেষ হতে অনেক সময় লাগতে পারে। এই কারণে, স্বয়ংক্রিয় টেস্ট রানার প্ল্যাটফর্মে সেগুলো রান করবে না। আপনি যদি প্ল্যাটফর্মে সরাসরি ওয়েব এডিটরে এই অনুশীলনীটি সমাধান করছেন, তাহলে বরং এটি নিজের মেশিনে ডাউনলোড করার কথা ভাবতে পারেন। এতে আপনি সব টেস্ট রান করতে এবং আপনার সমাধানের দক্ষতা যাচাই করতে পারবেন।

GitHub-এর মাধ্যমে সম্পাদনা করুন লিংকটি একটি নতুন উইন্ডো বা ট্যাবে খোলে
Elixir Exercism

অ্যারে অপারেশন শুরু করতে প্রস্তুত?

Exercism-এ সাইন আপ করুন, Elixir ট্র্যাকের 58টি কনসেপ্ট168টি অনুশীলনী আর সত্যিকারের মানুষের মেন্টরিং দিয়ে শিখুন ও দক্ষ হয়ে উঠুন, সম্পূর্ণ বিনামূল্যে।

ডিপ ডাইভ: অ্যারে অপারেশন!

রিকারশনের একটি ব্যবহারিক পরিচিতি উপভোগ করুন, অ্যারে অপারেশনের ইম্পারেটিভ ও ফাংশনাল বিকল্পগুলো ঘেঁটে দেখুন, আর টেল-কল রিকারশন ও অ্যাকুমুলেটর ফাংশনের গভীরে ডুব দিন।