ऐरे के बुनियादी ऑपरेशन लागू कीजिए।
फंक्शनल भाषाओं में length, map और reduce जैसे ऐरे ऑपरेशन बहुत आम हैं। पहले से मौजूद फंक्शन इस्तेमाल किए बिना बुनियादी ऐरे ऑपरेशनों की एक श्रृंखला लागू कीजिए।
लागू किए जाने वाले ऑपरेशनों की सही संख्या और नाम इस बात पर निर्भर करते हैं कि आप किस ट्रैक पर हैं, ताकि मौजूदा नामों से टकराव न हो। आम तौर पर आपको जो ऑपरेशन लागू करने होंगे, उनमें ये शामिल हैं:
append (दो ऐरे दिए जाने पर, दूसरे ऐरे के सारे एलिमेंट पहले ऐरे के अंत में जोड़िए);concatenate (ऐरों की एक श्रृंखला दिए जाने पर, सभी ऐरों के सारे एलिमेंट मिलाकर एक ही समतल ऐरे बनाइए);filter (एक प्रेडिकेट और एक ऐरे दिए जाने पर, वे सारे एलिमेंट वाला ऐरे लौटाइए जिनके लिए predicate(item) सही होता है);length (एक ऐरे दिए जाने पर, उसमें मौजूद कुल एलिमेंट की संख्या लौटाइए);map (एक फंक्शन और एक ऐरे दिए जाने पर, हर एलिमेंट पर function(item) लागू करने के नतीजों वाला ऐरे लौटाइए);foldl (एक फंक्शन, एक ऐरे और शुरुआती एक्युमुलेटर दिए जाने पर, हर एलिमेंट को बाईं ओर से एक्युमुलेटर में फोल्ड (रिड्यूस) कीजिए);foldr (एक फंक्शन, एक ऐरे और एक शुरुआती एक्युमुलेटर दिए जाने पर, हर एलिमेंट को दाईं ओर से एक्युमुलेटर में फोल्ड (रिड्यूस) कीजिए);reverse (एक ऐरे दिए जाने पर, एक ऐसा ऐरे लौटाइए जिसमें सारे मूल एलिमेंट हों, लेकिन उलटे क्रम में)।ध्यान रखिए कि फोल्ड फंक्शनों (foldl, foldr) को आर्गुमेंट किस क्रम में दिए जाते हैं, यह महत्वपूर्ण है।
इस अभ्यास का उद्देश्य यह है कि आप List के कुछ मेथड खुद लागू करें।
डेटा रखने के लिए अंदर ही अंदर एक List ऑब्जेक्ट इस्तेमाल करना स्वाभाविक है।
List के मेथड पर हाथ मत लगाइए (जैसे where, map, आदि)।
कुछ ऐसे "आधारभूत" List ऑपरेशन हैं जिनसे बचा नहीं जा सकता, जैसे:
list[from..to]
list.add(item)
जो List ऑपरेशन आपको लागू करने हैं, वे सब अलग-अलग तरीकों से इटरेशन करने से जुड़े हैं। इटरेटर प्रोटोकॉल के बारे में पढ़िए। तब आप ऐसा कर पाएँगे:
var list = ListOps.new([1, 2, 3, 4])
for (item in list) {
do_something_with(item)
}
Exercism पर साइन अप कीजिए और Wren को 117 अभ्यास तथा असली इंसानों से मिलने वाली मेंटरिंग के साथ सीखिए और उसमें महारत हासिल कीजिए, वह भी बिल्कुल मुफ्त।
रिकर्शन का एक व्यावहारिक परिचय पाइए, ऐरे ऑपरेशन के इम्पेरेटिव और फंक्शनल विकल्प जानिए, और टेल-कॉल रिकर्शन तथा एक्युमुलेटर फंक्शनों की गहराई में उतरिए।