डायमंड काटा इनपुट के रूप में एक अक्षर लेता है और उसे हीरे के आकार में छापता है। कोई अक्षर दिया जाए, तो यह 'A' से शुरू होने वाला हीरा छापता है। इसमें दिया गया अक्षर सबसे चौड़े हिस्से पर होता है।
आगे के उदाहरणों में स्पेस को · अक्षरों से दिखाया गया है।
'A' अक्षर के लिए हीरा:
A
'C' अक्षर के लिए हीरा:
··A··
·B·B·
C···C
·B·B·
··A··
'E' अक्षर के लिए हीरा:
····A····
···B·B···
··C···C··
·D·····D·
E·······E
·D·····D·
··C···C··
···B·B···
····A····
आपको diamond फंक्शन बनाना है, जो हीरे जैसा आकार छापता है। यह आकार A से
शुरू होता है और इसके सबसे चौड़े बिंदुओं पर दिया गया अक्षर आता है। अगर आपको
टाइप के बारे में शंका हो, तो दिया गया सिग्नेचर इस्तेमाल कर सकते हैं, पर उसे
अपनी रचनात्मकता सीमित करने न दें:
diamond :: Char -> Maybe [String]
यह अभ्यास टेक्स्ट डेटा के साथ काम करता है। ऐतिहासिक कारणों से Haskell का
String टाइप [Char] के समान है, यानी अक्षरों का ऐरे। टेक्स्ट डेटा को और
कुशलता से संभालने के लिए Text टाइप इस्तेमाल किया जा सकता है।
इस अभ्यास के वैकल्पिक विस्तार के तौर पर आप यह कर सकते हैं:
- text जोड़िए।Data.Text को इस
तरीके से
इंपोर्ट कीजिए:import qualified Data.Text as T
import Data.Text (Text)
diamond :: Char -> Maybe [Text] लिख सकते हैं और
Data.Text के कॉम्बिनेटरों को, जैसे T.pack, इस्तेमाल कर सकते हैं,Data.Text का
डॉक्युमेंटेशन देख लीजिए,String की सभी जगहों पर Text लिख सकते हैं:diamond :: Char -> Maybe [Text]
यह हिस्सा पूरी तरह वैकल्पिक है।
Exercism पर साइन अप कीजिए और Haskell को 107 अभ्यास तथा असली इंसानों से मिलने वाली मेंटरिंग के साथ सीखिए और उसमें महारत हासिल कीजिए, वह भी बिल्कुल मुफ्त।