में पारसी मॉड्यूल नहीं मिल रहा है मैं प्रश्न 67A of 99 Haskell Questions पर काम कर रहा हूं। सवाल एक दिया स्ट्रिंग से एक पेड़ निर्माण कर रही है: "x(y,a(,b))" => Branch 'x' (Branch 'y' Empty Empty) (Branch 'a' Empty (Branch 'b' Empty Empty))
एक समाधान Parsec
का उपयोग कर के रूप में नीचे है:जीएचसीआई
import Text.Parsec.String
import Text.Parsec hiding (Empty)
pTree :: Parser (Tree Char)
pTree = do
pBranch <|> pEmpty
pBranch = do
a <- letter
char '('
t0 <- pTree
char ','
t1 <- pTree
char ')'
return $ Branch a t0 t1
pEmpty =
return Empty
stringToTree str =
case parse pTree "" str of
Right t -> t
Left e -> error (show e)
लेकिन, मेरा GHCi न पा सके Text.Parsec.String
है और न ही Text.Parsec
। क्या वे मॉड्यूल अप्रचलित हैं? मेरे GHCi संस्करण 6.12.3
thx, यह parsec-3 स्थापित करने के बाद ठीक है। हालांकि, एक 'अप्रत्याशित "," उम्मीद "(" अब इसे चलाने पर अपवाद है। – manuzhang
इनपुट "x (y, a (, b))" दिए गए पार्सर द्वारा पार्स नहीं किया जा सकता है, जो कठोर प्रारूप की मांग करता है " एक्स (वाई (,), ए (, बी (,)) "एक पेड़ के लिए। –
thx फिर से और मैं हास्केल के 99 प्रश्नों पर अपना समाधान पोस्ट करता हूं। क्या यह ठीक है? अगर नहीं, तो मैं इसे तुरंत हटा दूंगा – manuzhang