Bob

Bob

आसान

परिचय

Bob एक आलसी किशोर है। वह खुद को बहुत कूल समझता है। और चीज़ों को लेकर वह बिल्कुल भी उत्साहित नहीं होता। ऐसा करना कूल नहीं कहलाता।

जब लोग उससे बात करते हैं, तो उसके जवाब काफी सीमित होते हैं।

निर्देश

आपका काम यह पता लगाना है कि जब कोई बॉब से कुछ कहता है या उससे कोई सवाल पूछता है, तो बॉब क्या जवाब देगा।

बॉब हमेशा पाँच बातों में से एक ही कहता है:

  • "Sure." यह जवाब वह तब देता है जब आप उससे कोई सवाल पूछते हैं, जैसे "How are you?" सवाल की पहचान यह है कि उसके अंत में प्रश्नवाचक चिह्न लगा होता है।
  • "Whoa, chill out!" यह जवाब वह तब देता है जब आप उस पर चिल्लाते हैं। चिल्लाने की पहचान यह है कि सारा वाक्य बड़े अक्षरों में लिखा होता है।
  • "Calm down, I know what I'm doing!" यह वह तब कहता है जब आप उससे चिल्लाकर कोई सवाल पूछते हैं।
  • "Fine. Be that way!" चुप्पी पर वह ऐसा ही जवाब देता है। चुप्पी का मतलब है कि कुछ भी न कहा जाए, या सिर्फ व्हाइटस्पेस अक्षरों के अलग-अलग जोड़ हों।
  • "Whatever." और किसी भी बात पर वह यही जवाब देता है।

संकेत

आपको responseFor फंक्शन बनाना है, जो दिए गए इनपुट के लिए Bob का जवाब लौटाता है। अगर आपको टाइप के बारे में पक्का नहीं पता, तो आप दिए गए सिग्नेचर का इस्तेमाल कर सकते हैं, लेकिन इसे अपनी रचनात्मकता सीमित करने मत दीजिए:

responseFor :: String -> String

इस अभ्यास को हल करने के लिए आप इनके बारे में पढ़ सकते हैं:

यह अभ्यास टेक्स्ट डेटा के साथ काम करता है। ऐतिहासिक कारणों से Haskell का String टाइप [Char] का पर्यायवाची है, यानी अक्षरों का एक ऐरे। टेक्स्ट डेटा को अधिक कुशलता से संभालने के लिए Text टाइप का उपयोग किया जा सकता है।

इस अभ्यास के एक वैकल्पिक विस्तार के तौर पर, आप ये कर सकते हैं:

  • Haskell में स्ट्रिंग टाइप के बारे में पढ़िए।

  • package.yaml में अपनी डिपेंडेंसी की सूची में - text जोड़ दीजिए।

  • Data.Text को इस तरीके से इंपोर्ट कीजिए:

    import qualified Data.Text as T
    import           Data.Text (Text)
    
  • अब आप उदाहरण के लिए responseFor :: Text -> Text लिख सकते हैं और Data.Text के कॉम्बिनेटरों को, जैसे T.isSuffixOf, इस्तेमाल कर सकते हैं।

  • Data.Text का डॉक्युमेंटेशन देखिए,

  • इसके बाद आप Bob.hs में हर जगह String की जगह Text लिख सकते हैं:

    responseFor :: Text -> Text
    

यह हिस्सा पूरी तरह से वैकल्पिक है।

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

Bob शुरू करने के लिए तैयार हैं?

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