accumulate অপারেশনটি ইমপ্লিমেন্ট করুন। এটি একটি কালেকশন এবং কালেকশনের প্রতিটি এলিমেন্টে করার জন্য একটি অপারেশন নেয়, আর ইনপুট কালেকশনের প্রতিটি এলিমেন্টে ওই অপারেশন প্রয়োগের ফলাফল নিয়ে একটি নতুন কালেকশন রিটার্ন করে।
ধরা যাক, সংখ্যাগুলোর কালেকশনটি হলো:
আর অপারেশনটি হলো:
x => x * x)আপনার কোড বর্গগুলোর কালেকশন তৈরি করতে সক্ষম হওয়া উচিত:
প্রত্যাশিত ফাংশন সিগনেচার দেখতে টেস্ট স্যুটটি দেখুন।
আপনার স্ট্যান্ডার্ড লাইব্রেরির দেওয়া collect/map/fmap/whatchamacallit ফাংশনালিটির ওপর হাত দূরে রাখুন! এর বদলে অন্য সাধারণ টুল ব্যবহার করে এটি নিজেই সমাধান করুন।
জেনেরিক Enumerable-এর জন্য মেথড ডিফাইন করার সময় সাধারণত #to_enum কল করা হয়, যাতে কোনো ব্লক পাস করা না হলেও কাজ চলে।
আপনি চাইলে একটি অতিরিক্ত টেস্ট যোগ করতে পারেন:
def test_accumulate_when_block_is_deferred
skip
accumulate_enumerator = [1, 2, 3].accumulate
accumulated_result = accumulate_enumerator.map do |number|
number * number
end
assert_equal [1, 4, 9], accumulated_result
end
Exercism-এ সাইন আপ করুন, Ruby ট্র্যাকের 21টি কনসেপ্ট121টি অনুশীলনী আর সত্যিকারের মানুষের মেন্টরিং দিয়ে শিখুন ও দক্ষ হয়ে উঠুন, সম্পূর্ণ বিনামূল্যে।