मैं Haskell course by Brent Yorgey के माध्यम से काम करके हास्केल सीख रहा हूं। मैं बस मोनैड सेक्शन पर पहुंचा, और जब मुझे लगता है कि मैं (आखिरकार) मोनैड के साथ काम करने के बारे में एक सभ्य समझ है, तो मुझे समझ में नहीं आता कि कोड का परीक्षण कैसे किया जाए।परीक्षण मोनाडिक कोड
इस खंड का अभ्यास एक (सरलीकृत) जोखिम सिमुलेशन लिखना है, और इसके लिए Rand StdGen
मोनड का भारी उपयोग की आवश्यकता है। विशेष रूप से, हमें निम्नलिखित फ़ंक्शन लिखना होगा:
type Army = Int
data Battlefield = Battlefield { attackers :: Army, defenders :: Army }
battle :: Battlefield -> Rand StdGen Battlefield
यह प्रारंभिक युद्धक्षेत्र लेता है, और यह लड़ाई कैसे चलती है इसका सिमुलेशन चलाता है।
मेरे पास इसके लिए एक कार्यान्वयन है, लेकिन मुझे समझ में नहीं आता कि इसका परीक्षण कैसे किया जाए। मैं Rand StdGen Battlefield
के अंदर battle
द्वारा लौटाए गए मानों को "प्राप्त नहीं कर सकता", इसलिए मैं उन्हें जीएचसीआई दुभाषिया पर प्रिंट नहीं कर सकता, इस प्रकार मैं अब तक अपने कोड का परीक्षण कर रहा हूं। मैं यह भी नहीं समझ सकता कि हास्केल मुख्य फ़ंक्शन, या किसी चीज़ में युद्ध के परिणाम को कैसे मुद्रित किया जाए। लोग इस तरह के कार्यों का परीक्षण करने के बारे में कैसे जाते हैं?
आप ['evalRand'] (http://hackage.haskell.org/package/MonadRandom-0.1.3/docs/Control-Monad-Random जैसे कार्यों का उपयोग करके यादृच्छिक गणना के परिणाम" प्राप्त "कर सकते हैं। एचटीएमएल) और दोस्तों। 'evalRand'' प्रारंभ '' RandomGen' लेता है और दृढ़ता से monadic गणना चलाता है। –
बहुत बढ़िया, धन्यवाद! यदि आप इसे उत्तर के रूप में पोस्ट करते हैं, तो मैं इसे स्वीकार करूंगा। – anjruu