मैं हास्केल में तीर सीखने की कोशिश कर रहा हूं, इसलिए मैं एक्सएमएल के लिए तीर आधारित एचएफटी लाइब्रेरी के साथ एक साधारण एप्लिकेशन लिख रहा हूं। HXT विकीज़ और ट्यूटोरियल में उदाहरण फ़ंक्शन प्रकार हस्ताक्षर को छोड़ दें। हालांकि, मैं बहुत प्रकार के शौकीन हूं और उनको कैसे उपयोग करना है, यह जानने की कोशिश कर रहा हूं। यह वह जगह है जहां मैंने एक ठोकर खाई से मुलाकात की है।तीर/एचएफटी और टाइप हस्ताक्षर
readXml str = runX (readString [withValidate no] str)
atTag tag = deep (isElem >>> hasName tag)
मैं समझ वे निम्नलिखित हस्ताक्षर सौंपा जाना चाहिए: इन कार्यों को देखते हुए
readXml ∷ String → IO [XmlTree]
atTag ∷ ArrowXml a ⇒ String → a XmlTree XmlTree
मैं इस तरह के रूप में इन का उपयोग कर एक साथ तीर वाक्य रचना हुक करने की कोशिश कर रहा हूँ:
parseItem = proc str -> do
desc <- text <<< atTag "description" <<< arr readXml -< str
...
हालांकि, अगर मेरे मेरे प्रकार के हस्ताक्षर सही हैं (जीएचसी ने शिकायत नहीं की है), मुझे XmlTree
प्राप्त करने औरपर वापस लाने के लिए मोनाड सिंटैक्स और तीर सिंटैक्स को गठबंधन करने के लिए एक तरीका चाहिए।
मुझे यकीन है कि कैसे आगे बढ़ना है। किसी के पास कोई अंतर्दृष्टि है?
मैं उलझन में हूं। परिदृश्य 1 में, readXml वास्तव में एक तीर नहीं है, बल्कि एक फ़ंक्शन जो तीर देता है। इसका उपयोग तीर सिंटैक्स के साथ कैसे किया जा सकता है जैसे कि यह एक था? – providence
मैं कोड को कॉपी करते समय '- <' को हटाने के लिए भूल गया; यह अब स्पष्ट होना चाहिए। – dflemstr