Bool टाइप भाषा के बुनियादी हिस्सों में से एक है।
इसका उद्देश्य यह बताना है कि कोई चीज़ सही है या गलत, और इसके लिए True और False वैल्यू होती हैं।
बूलियन को && ("AND") और || ("OR") ऑपरेटरों की मदद से जोड़ा जा सकता है, और not फंक्शन से उनका उलटा निकाला जा सकता है।
कोड में ऐसी शाखाएँ बनाने के लिए भी बूलियन बहुत काम के हैं, जो तभी चलती हैं जब कुछ खास शर्तें पूरी होती हैं।
Elm में यह काम if-then-else एक्सप्रेशन से किया जाता है, जिसका इस्तेमाल इस तरह होता है।
if someCondition || (someOtherCondition && anotherCondition) then
doSomething
else
doSomethingElse
इस अभ्यास में आप एक नए RPG गेम के लिए क्वेस्ट लॉजिक बनाएँगे, जिसे आपका कोई दोस्त बना रहा है। गेम की मुख्य पात्र Annalyn है, जो एक बहादुर लड़की है और जिसके पास एक उग्र और वफादार पालतू कुत्ता है। लेकिन दुर्भाग्य से मुसीबत आन पड़ी, क्योंकि जंगल में बेर ढूँढते समय उसकी सबसे अच्छी दोस्त का अपहरण हो गया। Annalyn अपनी सबसे अच्छी दोस्त को ढूँढकर आज़ाद करने की कोशिश करेगी, और चाहे तो इस काम में अपने कुत्ते को साथ ले जाएगी।
अपनी दोस्त के पीछे-पीछे कुछ समय चलने के बाद उसे वह शिविर मिल जाता है जहाँ उसकी दोस्त कैद है। पता चलता है कि अपहरण करने वाले दो लोग हैं: एक शक्तिशाली शूरवीर और एक चालाक धनुर्धर।
अपहरण करने वालों को ढूँढ लेने के बाद Annalyn सोचती है कि वह नीचे दिए गए कौन-कौन से काम कर सकती है:
आपके पास पाँच काम हैं: जंगल में मिले तीनों पात्रों की स्थिति, और Annalyn का पालतू कुत्ता साथ है या नहीं, इनके आधार पर यह तय करने का लॉजिक बनाना कि ऊपर बताए गए काम उपलब्ध हैं या नहीं।
canFastAttack फंक्शन बनाइए जो एक बूलियन वैल्यू लेता है, जो बताती है कि शूरवीर जाग रहा है या नहीं। शूरवीर की स्थिति के आधार पर यह फंक्शन True लौटाता है अगर तेज़ हमला किया जा सकता है। वरना यह False लौटाता है:
knightIsAwake = True
canFastAttack knightIsAwake
--> False
canSpy फंक्शन बनाइए जो तीन बूलियन वैल्यू लेता है, जो क्रमशः बताती हैं कि शूरवीर, धनुर्धर और कैदी जाग रहे हैं या नहीं। तीनों पात्रों की स्थिति के आधार पर यह फंक्शन True लौटाता है अगर समूह पर जासूसी की जा सकती है। वरना यह False लौटाता है:
knightIsAwake = False
archerIsAwake = True
prisonerIsAwake = False
canSpy knightIsAwake archerIsAwake prisonerIsAwake
--> True
canSignalPrisoner फंक्शन बनाइए जो दो बूलियन वैल्यू लेता है, जो क्रमशः बताती हैं कि धनुर्धर और कैदी जाग रहे हैं या नहीं। दोनों पात्रों की स्थिति के आधार पर यह फंक्शन True लौटाता है अगर कैदी को संकेत दिया जा सकता है। वरना यह False लौटाता है:
archerIsAwake = False
prisonerIsAwake = True
canSignalPrisoner archerIsAwake prisonerIsAwake
--> True
canFreePrisoner फंक्शन बनाइए जो चार बूलियन वैल्यू लेता है। पहले तीन पैरामीटर क्रमशः बताते हैं कि शूरवीर, धनुर्धर और कैदी जाग रहे हैं या नहीं। अंतिम पैरामीटर बताता है कि Annalyn का पालतू कुत्ता मौजूद है या नहीं। तीनों पात्रों की स्थिति और Annalyn के पालतू कुत्ते की मौजूदगी के आधार पर यह फंक्शन True लौटाता है अगर कैदी को आज़ाद किया जा सकता है। वरना यह False लौटाता है:
knightIsAwake = False
archerIsAwake = True
prisonerIsAwake = False
petDogIsPresent = False
canFreePrisoner knightIsAwake archerIsAwake prisonerIsAwake petDogIsPresent
--> False
stealthAttackDamage फंक्शन बनाइए जो एक बूलियन वैल्यू लेता है, जो बताती है कि Annalyn पकड़ी गई या नहीं। अगर वह पकड़ी गई तो यह फंक्शन 7 लौटाता है, वरना 12।
annalynIsDetected = True
stealthAttackDamage annalynIsDetected
--> 7
Exercism पर साइन अप कीजिए और Elm को 28 कॉन्सेप्ट110 अभ्यास तथा असली इंसानों से मिलने वाली मेंटरिंग के साथ सीखिए और उसमें महारत हासिल कीजिए, वह भी बिल्कुल मुफ्त।