accumulate ऑपरेशन लागू कीजिए। यह ऑपरेशन एक कलेक्शन और एक और ऑपरेशन लेता है, जिसे कलेक्शन के हर एलिमेंट पर करना होता है। फिर यह इनपुट कलेक्शन के हर एलिमेंट पर वह ऑपरेशन लागू करके जो नतीजे मिलते हैं, उन्हें लेकर एक नया कलेक्शन लौटाता है।
मान लीजिए संख्याओं का यह कलेक्शन दिया गया है:
और ऑपरेशन यह है:
x => x * x)आपके कोड से वर्गों का यह कलेक्शन बनना चाहिए:
अपेक्षित फंक्शन सिग्नेचर देखने के लिए टेस्ट सूट देखिए।
अपनी स्टैंडर्ड लाइब्रेरी में मिलने वाली उस collect/map/fmap या जो भी उसका नाम हो, ऐसी सुविधा को हाथ मत लगाइए! इसके बजाय दूसरे बुनियादी टूल इस्तेमाल करके इसे खुद हल कीजिए।
और स्पष्ट रूप से कहें तो, आप बिल्ट-इन LINQ मेथड में से कोई भी इस्तेमाल नहीं कर सकते।
चूँकि accumulate एक IEnumerable लौटाता है, इसलिए उसका निष्पादन तब तक टाल दिया जाता है जब तक उस पर ToList() कॉल नहीं किया जाता। इसकी जाँच Accumulate_is_lazy मेथड से की जाती है।
इस अभ्यास में आपको एक एक्सटेंशन मेथड लिखना है। अधिक जानकारी के लिए यह पेज देखिए।
Exercism पर साइन अप कीजिए और C# को 62 कॉन्सेप्ट178 अभ्यास तथा असली इंसानों से मिलने वाली मेंटरिंग के साथ सीखिए और उसमें महारत हासिल कीजिए, वह भी बिल्कुल मुफ्त।