की तलाश में है, मैं parsers
packagedo
सिंटैक्स का उपयोग करके एक पार्सर लिखने की कोशिश कर रहा हूं।'पार्सिंग' आवेदक के साथ लागू भाषा भाषा अभी भी मोनाड इंस्टेंस
{-# LANGUAGE ApplicativeDo #-}
import Text.Parser.Char (string, spaces)
import Text.Parser.Token (TokenParsing, natural)
issueParser :: TokenParsing p => p Integer
issueParser = do
spaces
string "**Issue:**"
spaces
string "https://github.com" <|> string "github.com"
string "/commercialhaskell/stack/issues/"
natural
त्रुटि GHC मुझे देता है Could not deduce (Monad p) arising from a do statement from the context: TokenParsing p
है: यहाँ एक उदाहरण है। यह त्रुटि संदेश सही है कि TokenParsing
एक सुपर क्लास के रूप में Monad
प्रदान नहीं करता है, हालांकि यह Applicative
प्रदान करता है जिसका अर्थ है क्योंकि मेरे पास यह भाषा विस्तार चालू है, मुझे Applicative
के साथ do
सिंटैक्स का उपयोग करने में सक्षम होना चाहिए। मैं यहाँ क्या गलत/लापता कर रहा हूँ?
ओह वाह, मैं हैरान हूं यह देखने के लिए कि 'आवेदनकर्ता' ने इस स्पष्ट मामले को संभाला नहीं है! –
'आवेदक डू 'काफी गूंगा है। जैसे यह – luqui
किसी भी प्रकार के 'लेट' स्टेटमेंट को संभाल नहीं सकता है, मुझे एक ही समस्या थी: http://stackoverflow.com/questions/41210599/applicativedo-not-working-with-sequencing – danidiaz