Raindrops, FizzBuzz चैलेंज का थोड़ा अधिक जटिल रूप है, जो एक क्लासिक इंटरव्यू सवाल है।
आपको एक संख्या को उसके अनुरूप बारिश की बूँदों की आवाज़ों में बदलना है।
अगर दी गई संख्या:
"Plong" होगा।"PlingPlang" होगा।"34" होगा।आपको convert फंक्शन बनाना है, जो एक संख्या को बारिश की बूँदों की ध्वनि में बदलकर लौटाता है। अगर आपको टाइप को लेकर संदेह हो, तो दी गई सिग्नेचर इस्तेमाल कर सकते हैं, लेकिन इससे अपनी रचनात्मकता को सीमित न कीजिए:
convert :: Int -> String
यह अभ्यास टेक्स्ट वाले डेटा के साथ काम करता है। ऐतिहासिक कारणों से Haskell का String टाइप [Char] का पर्यायवाची है, यानी अक्षरों का ऐरे। टेक्स्ट डेटा को और बेहतर तरीके से संभालने के लिए Text टाइप इस्तेमाल किया जा सकता है।
इस अभ्यास के वैकल्पिक विस्तार के तौर पर आप ये चीज़ें कर सकते हैं:
- text जोड़िए।Data.Text को इस तरीके से इम्पोर्ट कीजिए:import qualified Data.Text as T
import Data.Text (Text)
convert :: Int -> Text लिख सकते हैं और Data.Text के कॉम्बिनेटरों को T.pack जैसे नाम से इस्तेमाल कर सकते हैं।Data.Text का डॉक्युमेंटेशन देखिए,String की सभी जगहों पर Text रख सकते हैं:convert :: Int -> Text
यह हिस्सा पूरी तरह वैकल्पिक है।
Exercism पर साइन अप कीजिए और Haskell को 107 अभ्यास तथा असली इंसानों से मिलने वाली मेंटरिंग के साथ सीखिए और उसमें महारत हासिल कीजिए, वह भी बिल्कुल मुफ्त।
इसके कई हल देखिए: फंक्शनल पाइपलाइन, मैट्रिक्स गुणा, मैक्रो की मदद से पहले से बनी टेबल पर आधारित हल, ऑब्जेक्ट ओरिएंटेड तरीका, Python और TCL का कुछ शानदार इस्तेमाल, और एक एंटरप्राइज़ संस्करण।