मैं सिर्फ written a function (Data.Sequence
के लिए)मैं आवेदनों पर पॉलिमॉर्फिक कार्यों का परीक्षण कैसे कर सकता हूं?
traverseWithIndex :: Applicative f => (Int -> a -> f b) -> Seq a -> f (Seq b)
जो
traverseWithIndex f = sequenceA . mapWithIndex f
शुक्र का पालन करना चाहिए है, इस mapWithIndex
के स्रोत का एक सीधा यांत्रिक संशोधन है, इसलिए मैं यह सही है काफी आश्वस्त हूँ । हालांकि, अधिक जटिल मामलों में पूरी तरह से परीक्षण की आवश्यकता होगी। मैं इस सरल एक का परीक्षण करने के लिए एक त्वरित जांच संपत्ति लिखने की कोशिश कर रहा हूं। जाहिर है, मैं इसे हर Applicative
मज़ेदार के साथ कोशिश नहीं कर सकता! मोनोइड्स का परीक्षण करते समय, यह किसी प्रकार के मुक्त मोनोइड (यानी, सीमित सूचियों) के साथ परीक्षण करने के लिए अच्छी समझ में आता है। तो कुछ मज़ेदार पर free applicative functor के साथ परीक्षण करने के लिए यहां समझदार लगता है। दो कठिनाइयां हैं:
मैं एक उपयुक्त बेस फ़ैक्टर कैसे चुनूं? मैं शायद एक बुराई चाहता हूं जो आवेदक या ट्रैवर्सबल या कुछ भी नहीं है, लेकिन ऐसी चीज के साथ काम करना मुश्किल लगता है।
मैं परिणामों की तुलना कैसे करूं? उनके पास कार्य होंगे, इसलिए उनके पास
Eq
उदाहरण नहीं है।
ऊह, चीजों को पढ़ने के लिए। मुझे कल कोशिश करनी होगी! यह बीजगणितीय दृष्टिकोण ध्वनि वादा करता है। – dfeuer