ट्रैक
/
Haskell
Haskell
/
अभ्यास
/
बारिश की बूँदें
बारिश की बूँदें

बारिश की बूँदें

आसान

परिचय

Raindrops, FizzBuzz चैलेंज का थोड़ा अधिक जटिल रूप है, जो एक क्लासिक इंटरव्यू सवाल है।

निर्देश

आपको एक संख्या को उसके अनुरूप बारिश की बूँदों की आवाज़ों में बदलना है।

अगर दी गई संख्या:

  • 3 से विभाज्य है, तो परिणाम में "Pling" जोड़िए।
  • 5 से विभाज्य है, तो परिणाम में "Plang" जोड़िए।
  • 7 से विभाज्य है, तो परिणाम में "Plong" जोड़िए।
  • 3, 5 या 7 से विभाज्य नहीं है, तो परिणाम वही संख्या स्ट्रिंग के रूप में होना चाहिए।

उदाहरण

  • 28, 7 से विभाज्य है, लेकिन 3 या 5 से नहीं, इसलिए परिणाम "Plong" होगा।
  • 30, 3 और 5 से विभाज्य है, लेकिन 7 से नहीं, इसलिए परिणाम "PlingPlang" होगा।
  • 34, 3, 5 या 7 से विभाज्य नहीं है, इसलिए परिणाम "34" होगा।
Note

यह जाँचने का एक आम तरीका है कि एक संख्या दूसरी से पूरी तरह विभाज्य है या नहीं। इसके लिए शेषफल या मॉड्यूलस की शून्य से तुलना की जाती है। अधिकांश भाषाएँ इनमें से एक (या दोनों) के लिए ऑपरेटर या फंक्शन देती हैं।

संकेत

आपको convert फंक्शन बनाना है, जो एक संख्या को बारिश की बूँदों की ध्वनि में बदलकर लौटाता है। अगर आपको टाइप को लेकर संदेह हो, तो दी गई सिग्नेचर इस्तेमाल कर सकते हैं, लेकिन इससे अपनी रचनात्मकता को सीमित न कीजिए:

convert :: Int -> String

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

इस अभ्यास के वैकल्पिक विस्तार के तौर पर आप ये चीज़ें कर सकते हैं:

import qualified Data.Text as T
import           Data.Text (Text)
  • अब आप उदाहरण के लिए convert :: Int -> Text लिख सकते हैं और Data.Text के कॉम्बिनेटरों को T.pack जैसे नाम से इस्तेमाल कर सकते हैं।
  • Data.Text का डॉक्युमेंटेशन देखिए,
  • इसके बाद आप Raindrops.hs में String की सभी जगहों पर Text रख सकते हैं:
convert :: Int -> Text

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

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

बारिश की बूँदें शुरू करने के लिए तैयार हैं?

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

बारिश की बूँदें को गहराई से जानिए!

इसके कई हल देखिए: फंक्शनल पाइपलाइन, मैट्रिक्स गुणा, मैक्रो की मदद से पहले से बनी टेबल पर आधारित हल, ऑब्जेक्ट ओरिएंटेड तरीका, Python और TCL का कुछ शानदार इस्तेमाल, और एक एंटरप्राइज़ संस्करण।