ट्रैक
/
Gleam
Gleam
/
अभ्यास
/
खज़ाने का संदूक
खज़ाने का संदूक

खज़ाने का संदूक

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

परिचय

जेनेरिक्स

जब कोई टाइप किसी टाइप पैरामीटर की मदद से किसी भी टाइप की वैल्यू रख सकता है, तो वह जेनेरिक टाइप कहलाता है।

उदाहरण के लिए, इस Box टाइप में a टाइप पैरामीटर है (जो छोटे अक्षरों में लिखा जाता है)।

pub type Box(a) {
  Box(a)
}

a टाइप पैरामीटर किसी भी टाइप के लिए एक प्लेसहोल्डर है, इसलिए Box को स्ट्रिंग, पूर्णांक या किसी भी दूसरे टाइप के साथ इस्तेमाल किया जा सकता है।

Box("Hello, Joe!") // The type is Box(String)

Box(42) // The type is Box(Int)

किसी टाइप में एक से अधिक टाइप पैरामीटर भी हो सकते हैं, जिन्हें कॉमा से अलग किया जाता है।

pub type Pair(a, b) {
  Pair(a, b)
}

जेनेरिक फंक्शन

टाइप पैरामीटर फंक्शन के आर्गुमेंट में भी इस्तेमाल किए जा सकते हैं।

यह फंक्शन a टाइप की एक वैल्यू लेता है और ऐसे फंक्शन को दो बार कॉल करता है जो एक a लेता है और एक b लौटाता है।

pub fn twice(value: a, f: fn(a) -> b) -> b {
  f(value)
  f(value)
}
// The type is fn(String, fn(String) -> Nil) -> Nil
twice("Hello, Joe!", io.println)

निर्देश

इस अभ्यास में आप एक जेनेरिक (और जादुई!) TreasureChest लिखेंगे, जिसमें थोड़ा खज़ाना रखा जा सके।

1. TreasureChest जेनेरिक कस्टम टाइप बनाइए

एक TreasureChest कस्टम टाइप बनाइए जिसमें सिर्फ एक वेरिएंट हो।

उस वेरिएंट के साथ एक String वैल्यू जुड़ी होनी चाहिए, जिसका उपयोग खज़ाने के संदूक का पासवर्ड रखने के लिए किया जाएगा।

उस वेरिएंट के साथ एक जेनेरिक वैल्यू भी जुड़ी होनी चाहिए, जिसका उपयोग खज़ाना रखने के लिए किया जाएगा। यह वैल्यू जेनेरिक है, इसलिए खज़ाना कुछ भी हो सकता है।

2. UnlockResult टाइप बनाइए

एक UnlockResult कस्टम टाइप बनाइए जिसमें दो वेरिएंट हों।

पहला वेरिएंट Unlocked होना चाहिए, और उसमें एक जेनेरिक वैल्यू होनी चाहिए, जिसका उपयोग खज़ाना रखने के लिए किया जाएगा।

दूसरा वेरिएंट WrongPassword होना चाहिए, जिसमें कोई वैल्यू नहीं होती।

3. get_treasure फंक्शन बनाइए

इस फंक्शन को दो पैरामीटर लेने चाहिए

  • एक TreasureChest जेनेरिक कस्टम टाइप
  • एक String (पासवर्ड आज़माने के लिए)

इस फंक्शन को दिए गए पासवर्ड को TreasureChest में मौजूद String से मिलाकर जाँचना चाहिए।

इस फंक्शन को एक UnlockResult लौटाना चाहिए।

अगर दोनों पासवर्ड मेल खाते हैं तो TreasureChest से मिली जेनेरिक वैल्यू (यानी खज़ाना!) के साथ Unlocked लौटाइए।

अगर पासवर्ड मेल नहीं खाते तो WrongPassword लौटाइए।

GitHub के ज़रिए संपादित करें यह लिंक एक नई विंडो या टैब में खुलता है
Gleam Exercism

खज़ाने का संदूक शुरू करने के लिए तैयार हैं?

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