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

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

কঠিন

নির্দেশনা

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

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

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

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

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

ট্র্যাক-নির্দিষ্ট নির্দেশনা

এই অনুশীলনীর টেস্টগুলোতে আপনাকে এক্সটেনশন ব্যবহার করতে হবে। এক্সটেনশন হলো এমন একটি ব্যবস্থা, যার সাহায্যে আপনি এমন একটি বিদ্যমান ক্লাসে নতুন কার্যকারিতা যোগ করতে পারেন, যার সোর্স কোড আপনার সরাসরি নিয়ন্ত্রণে নেই, আর সেজন্য সেটিকে সাবক্লাসও করতে হয় না।

Kotlin-এ এক্সটেনশনের বাস্তবায়ন সম্পর্কে আরও জানতে অফিসিয়াল ডকুমেন্টেশন দেখুন।

customFoldLeft এবং customFoldRight মেথড দুটি হলো "fold" ফাংশন। ফাংশনাল প্রোগ্রামিং জগতে এই ধারণাটি বেশ পরিচিত, তবে অবজেক্ট-ওরিয়েন্টেড জগতে ততটা নয়। আরও প্রেক্ষাপট জানতে চাইলে এই fold পৃষ্ঠাটি দেখুন।

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

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

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

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

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