মৌলিক অ্যারে অপারেশন ইমপ্লিমেন্ট করুন।
ফাংশনাল ভাষায় length, map, ও reduce-এর মতো অ্যারে অপারেশন খুবই কমন। বিদ্যমান ফাংশন ব্যবহার না করেই একগুচ্ছ মৌলিক অ্যারে অপারেশন ইমপ্লিমেন্ট করুন।
বিদ্যমান নামের সঙ্গে সংঘর্ষ এড়াতে যে অপারেশনগুলো ইমপ্লিমেন্ট করা হবে তার সঠিক সংখ্যা ও নাম track-এর উপর নির্ভর করবে, তবে আপনি যে সাধারণ অপারেশনগুলো ইমপ্লিমেন্ট করবেন সেগুলো হলো:
append (দুটি অ্যারে দেওয়া হলে, দ্বিতীয় অ্যারের সব এলিমেন্ট প্রথম অ্যারের শেষে যোগ করুন);concatenate (একগুচ্ছ অ্যারে দেওয়া হলে, সব অ্যারের সব এলিমেন্ট একত্র করে একটি সমতল অ্যারে বানান);filter (একটি প্রেডিকেট ও একটি অ্যারে দেওয়া হলে, যেসব এলিমেন্টের জন্য predicate(item) ট্রু হয় সেসব এলিমেন্টের অ্যারে রিটার্ন করুন);length (একটি অ্যারে দেওয়া হলে, তার ভেতরে থাকা এলিমেন্টের মোট সংখ্যা রিটার্ন করুন);map (একটি ফাংশন ও একটি অ্যারে দেওয়া হলে, সব এলিমেন্টে function(item) প্রয়োগ করার ফলাফলগুলোর অ্যারে রিটার্ন করুন);foldl (একটি ফাংশন, একটি অ্যারে এবং একটি প্রাথমিক অ্যাকুমুলেটর দেওয়া হলে, বাম দিক থেকে প্রতিটি এলিমেন্ট অ্যাকুমুলেটরে ফোল্ড (রিডিউস) করুন);foldr (একটি ফাংশন, একটি অ্যারে এবং একটি প্রাথমিক অ্যাকুমুলেটর দেওয়া হলে, ডান দিক থেকে প্রতিটি এলিমেন্ট অ্যাকুমুলেটরে ফোল্ড (রিডিউস) করুন);reverse (একটি অ্যারে দেওয়া হলে, মূল সব এলিমেন্ট নিয়ে একটি অ্যারে রিটার্ন করুন, তবে উল্টো ক্রমে)।লক্ষ্য করুন, ফোল্ড ফাংশনগুলোতে (foldl, foldr) আর্গুমেন্ট যে ক্রমে পাঠানো হয় সেটি গুরুত্বপূর্ণ।
ডিস্টাকচারিংয়ের মাধ্যমে অ্যারে তৈরি ও ভেঙে ফেলতে ভাষার মূল ফিচারগুলো ব্যবহার করা এবং [] অ্যারে লিটারাল ব্যবহার করা যাবে, তবে Array.prototype-এর কোনো ফাংশন ব্যবহার করা যাবে না।
আপনার সমাধান পরীক্ষা করার জন্য নিশ্চিত করুন যে forEach ইমপ্লিমেন্ট করা হয়েছে।
const list = List.create(1, 2)
list.forEach((item) => console.log(item))
// =>
// 1
// 2
Exercism-এ সাইন আপ করুন, TypeScript ট্র্যাকের 108টি অনুশীলনী আর সত্যিকারের মানুষের মেন্টরিং দিয়ে শিখুন ও দক্ষ হয়ে উঠুন, সম্পূর্ণ বিনামূল্যে।
রিকারশনের একটি ব্যবহারিক পরিচিতি উপভোগ করুন, অ্যারে অপারেশনের ইম্পারেটিভ ও ফাংশনাল বিকল্পগুলো ঘেঁটে দেখুন, আর টেল-কল রিকারশন ও অ্যাকুমুলেটর ফাংশনের গভীরে ডুব দিন।