2017-06-21 10 views
-3

tout en apprenant le tutoriel parsec, j'ai essayé la commande fllowingHaskell erreur parsec

print (Parsec.parse (Parsec.many (Parsec.choice [Parsec.letter,Parsec.spaces ,(Parsec.char ','), Parsec.digit])) "" "hello1 , byebye2 ,") 

et l'erreur dans la console était enter image description here

Je ne sais pas comment résoudre ce problème. Comment cela peut-il être réparé, des idées?

Répondre

1

De hackage

spaces :: Stream s m Char => ParsecT s u m() 
letter :: Stream s m Char => ParsecT s u m Char 

de sorte que vous avez analyseur, qui tentent de vous donner Char s et un, qui vient de gouttes d'entrée et vous donne (). Quel devrait être le résultat?

Vous pouvez utiliser

space :: Stream s m Char => ParsecT s u m Char 

ou

(spaces *> return ' ') 

au lieu de simplement spaces dépend du comportement que vous voulez.