Gleam में सही और गलत वैल्यू को Bool टाइप से दर्शाया जाता है। इसकी केवल दो वैल्यू होती हैं: True और False. इन वैल्यू को किसी वेरिएबल में बाँधा जा सकता है:
let true_variable = True
let false_variable = False
बूलियन वैल्यू पर काम करने के लिए &&, || और ! ऑपरेटरों का उपयोग किया जा सकता है:
True && True // -> True
True && False // -> False
False || True // -> True
False || False // -> False
!False // -> True
!True // -> False
&& और || ऑपरेटर शॉर्ट-सर्किट इवैल्यूएशन का उपयोग करते हैं। इसका मतलब है कि ऑपरेटर के दाईं ओर वाले एक्सप्रेशन का मूल्यांकन तभी किया जाता है जब ज़रूरत हो।
हर ऑपरेटर की प्राथमिकता अलग होती है: ! का मूल्यांकन && और || से पहले होता है। एक्सप्रेशन के एक हिस्से का मूल्यांकन बाकी हिस्सों से पहले करने के लिए घुंघराले ब्रैकेट का उपयोग किया जा सकता है:
!True && False // -> False
!{True && False} // -> True
इस अभ्यास में आपको क्लासिक गेम Pac-Man के कुछ नियमों को Gleam फंक्शन में बदलना है।
आपको चार नियम बदलने हैं, और ये सभी गेम की स्थितियों से जुड़े हैं।
इस बात की चिंता न कीजिए कि ये आर्गुमेंट कहाँ से आते हैं; बस इन्हें मिलाकर वह परिणाम लौटाने पर ध्यान दीजिए जो चाहिए।
eat_ghost फंक्शन बनाइए। यह दो आर्गुमेंट लेता है (Pac-Man के पास पावर पेलेट चालू है या नहीं और Pac-Man किसी भूत को छू रहा है या नहीं) और एक बूलियन वैल्यू लौटाता है, जो बताती है कि Pac-Man भूत खा सकता है या नहीं। यह फंक्शन केवल तभी True लौटाना चाहिए, जब Pac-Man के पास पावर पेलेट चालू हो और वह किसी भूत को छू रहा हो।
eat_ghost(False, True)
// -> False
score फंक्शन बनाइए। यह दो आर्गुमेंट लेता है (Pac-Man किसी पावर पेलेट को छू रहा है या नहीं और Pac-Man किसी डॉट को छू रहा है या नहीं) और एक बूलियन वैल्यू लौटाता है, जो बताती है कि Pac-Man को अंक मिले या नहीं। यह फंक्शन तब True लौटाना चाहिए, जब Pac-Man किसी पावर पेलेट या डॉट को छू रहा हो।
score(True, True)
// -> True
lose फंक्शन बनाइए। यह दो आर्गुमेंट लेता है (Pac-Man के पास पावर पेलेट चालू है या नहीं और Pac-Man किसी भूत को छू रहा है या नहीं) और एक बूलियन वैल्यू लौटाता है, जो बताती है कि Pac-Man हारता है या नहीं। यह फंक्शन तब True लौटाना चाहिए, जब Pac-Man किसी भूत को छू रहा हो और उसके पास पावर पेलेट चालू न हो।
lose(False, True)
// -> True
win फंक्शन बनाइए। यह तीन आर्गुमेंट लेता है (Pac-Man ने सारे डॉट खा लिए हैं या नहीं, Pac-Man के पास पावर पेलेट चालू है या नहीं, और Pac-Man किसी भूत को छू रहा है या नहीं) और एक बूलियन वैल्यू लौटाता है, जो बताती है कि Pac-Man जीतता है या नहीं। यह फंक्शन तब True लौटाना चाहिए, जब Pac-Man ने सारे डॉट खा लिए हों और भाग 3 में बताए गए आर्गुमेंट के आधार पर वह न हारा हो।
win(False, True, False)
// -> False
Exercism पर साइन अप कीजिए और Gleam को 33 कॉन्सेप्ट122 अभ्यास तथा असली इंसानों से मिलने वाली मेंटरिंग के साथ सीखिए और उसमें महारत हासिल कीजिए, वह भी बिल्कुल मुफ्त।