ट्रैक
/
Elixir
Elixir
/
अभ्यास
/
पक्षियों की गिनती
पक्षियों की गिनती

पक्षियों की गिनती

सीखने का अभ्यास

परिचय

रिकर्शन

रिकर्शन वाले फंक्शन ऐसे फंक्शन होते हैं जो खुद को कॉल करते हैं।

एक रिकर्शन वाले फंक्शन में कम से कम एक बेस केस और कम से कम एक रिकर्सिव केस होना चाहिए।

बेस केस फंक्शन को दोबारा कॉल किए बिना एक वैल्यू लौटाता है। रिकर्सिव केस फंक्शन को दोबारा कॉल करता है और इनपुट को इस तरह बदल देता है कि वह किसी समय बेस केस से मेल खाने लगे।

बहुत बार हर केस को उसके अपने फंक्शन क्लॉज़ में लिखा जाता है।

# base case
def count([]), do: 0

# recursive case
def count([_head | tail]), do: 1 + count(tail)

निर्देश

आपको पक्षी देखने का बहुत शौक है और आप यह हिसाब रखते हैं कि किसी भी दिन आपके बगीचे में कितने पक्षी आए।

आपने तय किया है कि अब पक्षी देखने को एक नए लेवल पर ले जाना है और कुछ ऐसे टूल बनाने हैं जो इस डेटा पर नज़र रखने और उसे संसाधित करने में आपकी मदद करें।

आपने डेटा को पूर्णांकों की एक ऐरे के रूप में रखने का फैसला किया है। ऐरे में पहली संख्या उन पक्षियों की है जो आज आपके बगीचे में आए, दूसरी कल आए पक्षियों की, और इसी तरह आगे भी।

1. देखिए कि आज कितने पक्षी आए

BirdCount.today/1 फंक्शन बनाइए। यह पक्षियों की रोज़ाना गिनती की एक ऐरे लेता है और आज की गिनती लौटाता है। अगर ऐरे खाली हो, तो इसे nil लौटाना चाहिए।

BirdCount.today([2, 5, 1])
# => 2

2. आज की गिनती बढ़ाइए

BirdCount.increment_day_count/1 फंक्शन बनाइए। यह पक्षियों की रोज़ाना गिनती की एक ऐरे लेता है और आज की गिनती को 1 से बढ़ा देता है। अगर ऐरे खाली हो, तो [1] लौटाइए।

BirdCount.increment_day_count([4, 0, 2])
# => [5, 0, 2]

3. जाँचिए कि क्या कोई दिन ऐसा था जब एक भी पक्षी नहीं आया

BirdCount.has_day_without_birds?/1 फंक्शन बनाइए। यह पक्षियों की रोज़ाना गिनती की एक ऐरे लेता है। अगर कम से कम एक दिन ऐसा था जब बगीचे में कोई पक्षी नहीं आया, तो इसे true लौटाना चाहिए, और वरना false।

BirdCount.has_day_without_birds?([2, 0, 4])
# => true

BirdCount.has_day_without_birds?([3, 8, 1, 5])
# => false

4. आए हुए पक्षियों की कुल संख्या निकालिए

BirdCount.total/1 फंक्शन बनाइए। यह पक्षियों की रोज़ाना गिनती की एक ऐरे लेता है और आपके बगीचे में अब तक आए कुल पक्षियों की संख्या लौटाता है, यानी जब से आपने डेटा इकट्ठा करना शुरू किया।

BirdCount.total([4, 0, 9, 0, 5])
# => 18

5. व्यस्त दिनों की संख्या निकालिए

कुछ दिन बाकी दिनों से ज़्यादा व्यस्त होते हैं। व्यस्त दिन वह होता है जब आपके बगीचे में पाँच या उससे अधिक पक्षी आए हों।

BirdCount.busy_days/1 फंक्शन बनाइए। यह पक्षियों की रोज़ाना गिनती की एक ऐरे लेता है और व्यस्त दिनों की संख्या लौटाता है।

BirdCount.busy_days([4, 5, 0, 0, 6])
# => 2
GitHub के ज़रिए संपादित करें यह लिंक एक नई विंडो या टैब में खुलता है
Elixir Exercism

पक्षियों की गिनती शुरू करने के लिए तैयार हैं?

Exercism पर साइन अप कीजिए और Elixir को 58 कॉन्सेप्ट168 अभ्यास तथा असली इंसानों से मिलने वाली मेंटरिंग के साथ सीखिए और उसमें महारत हासिल कीजिए, वह भी बिल्कुल मुफ्त।