ट्रैक
/
Clojure
Clojure
/
अभ्यास
/
पक्षी दर्शक
पक्षी दर्शक

पक्षी दर्शक

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

परिचय

Clojure में vector शून्य या उससे अधिक वैल्यू का एक क्रमिक, इंडेक्स वाला और अपरिवर्तनीय संग्रह होता है। इसका मतलब है कि एक बार वेक्टर बन जाने के बाद उसे बदला नहीं जा सकता। वेक्टर पर काम करने वाले फंक्शन एक नया वेक्टर लौटाते हैं, जबकि मूल वेक्टर में कोई बदलाव नहीं होता। एक वेक्टर में अलग-अलग टाइप की वैल्यू हो सकती हैं। वेक्टर को इस तरह बनाया जा सकता है:

(def empty [])
(def single-value [5])
(def single-value-alternative (vector 5))
(def three-values [1 "a" "b"])

इंडेक्स की मदद से वेक्टर से एलिमेंट निकाले जा सकते हैं। Clojure के वेक्टर शून्य से शुरू होते हैं, यानी पहले एलिमेंट का इंडेक्स हमेशा शून्य होता है:

(def numbers [2 3 5])
;; Read value from vector
(get numbers 2)
;;=> 5
;; Update value in vector
(assoc numbers 2 9)
;;=> [2 3 9]

मूल वेक्टर में कोई बदलाव नहीं होता:

numbers
;;=> [2 3 5]

अपडेट हुई वैल्यू को याद रखने के लिए हमें उसे आगे भेजना होता है या किसी वार में सहेजना होता है:

(def updated-numbers
  (assoc numbers 2 9))
(get updated-numbers 2)
;;=> 9

निर्देश

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

आपके सामने छह काम हैं, और सभी आपके बगीचे में आए पक्षियों की संख्याओं से जुड़े हैं।

1. देखिए कि पिछले सप्ताह की गिनती क्या थी

तुलना करने के लिए आप पिछले सप्ताह की गिनती की एक कॉपी हमेशा अपने पास रखते हैं, जो यह थी: 0, 2, 5, 3, 7, 8 और 4। पिछले सप्ताह की गिनतियों वाला एक वेक्टर बनाइए:

last-week
;;=> [0 2 5 3 7 8 4]

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

today फंक्शन बनाइए जो यह लौटाता है कि आज आपके बगीचे में कितने पक्षी आए। पक्षियों की गिनतियाँ दिन के क्रम में लगी हैं: पहला एलिमेंट सबसे पुराने दिन की गिनती है और अंतिम एलिमेंट आज की गिनती है।

(def birds-per-day [2 5 0 7 4 1])
(today birds-per-day)
;;=> 1

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

inc-bird फंक्शन बनाइए जो आज की गिनती बढ़ा दे:

(inc-bird birds-per-day)
;;=> [2 5 0 7 4 2]

4. देखिए कि क्या कोई ऐसा दिन था जब कोई पक्षी नहीं आया

day-without-birds? प्रेडिकेट फंक्शन बनाइए जो true लौटाता है अगर कोई ऐसा दिन था जब बगीचे में शून्य पक्षी आए; वरना false लौटाइए:

(day-without-birds? birds-per-day)
;;=> true

5. शुरू के दिए गए दिनों में आए पक्षियों की संख्या निकालिए

n-days-count फंक्शन बनाइए जो बताता है कि सप्ताह की शुरुआत से आपके बगीचे में कितने पक्षी आए, लेकिन गिनती को सप्ताह की शुरुआत से दिए गए दिनों तक ही सीमित रखिए।

(n-days-count birds-per-day 4)
;;=> 14

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

कुछ दिन दूसरे दिनों से ज़्यादा व्यस्त होते हैं। व्यस्त दिन वह होता है जब आपके बगीचे में पाँच या उससे अधिक पक्षी आए हों। busy-days फंक्शन बनाइए जो व्यस्त दिनों की संख्या लौटाए:

(busy-days birds-per-day)
;;=> 2

7. विषम सप्ताह की जाँच कीजिए

पिछले एक साल में आपने देखा है कि कुछ सप्ताह एक ही विषम पैटर्न बनाते हैं, जिसमें पक्षियों की गिनतियाँ एक और शून्य के बीच बदलती रहती हैं। odd-week? फंक्शन बनाइए जो true लौटाता है अगर इस सप्ताह का पक्षी-गिनती पैटर्न उस विषम पैटर्न से मेल खाता है:

(odd-week? [1 0 1 0 1 0 1])
;;=> true
GitHub के ज़रिए संपादित करें यह लिंक एक नई विंडो या टैब में खुलता है
Clojure Exercism

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

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