2017-06-21 2 views
-3

während das Parsec Tutorial lernen, habe ich versucht, den fllowing BefehlHaskell Parsec Fehler

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

und der Fehler in der Konsole war enter image description here

Ich bin nicht sicher, wie dies zu beheben. Wie das behoben werden kann, irgendwelche Ideen ??

Antwort

1

Von hackage

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

so haben Sie Parser, die versuchen, Sie Char s zu geben, und ein, dass die Eingabe nur Tropfen und gibt Ihnen (). Was sollte das Ergebnis sein?

Sie könnten

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

oder

(spaces *> return ' ') 

statt nur spaces hängt vom Verhalten Sie wollen.