mit oneOf in Haskell, Fehler bei der Zusammenstellung
Frage
Ich bin ein kompletter Neuling in Haskell. Ich versuche, diese Haskell-Datei zu kompilieren, ich heruntergeladen habe, aber es gibt mir einige Fehler.
No instance for (Text.Parsec.Prim.Stream s m Char)
arising from a use of 'letter' at Parse.lhs:649:26-31
Possible fix:
add an instance declaration for (Text.Parsec.Prim.Stream s m Char)
In the first argument of '(<|>)', namely 'letter'
In the expression: letter <|> oneOf "_"
In the definition of 'firstAllowed':
firstAllowed = letter <|> oneOf "_"
Nicht sicher, ob dies genug, aber hier ist der Abschnitt des Codes mit dem Fehler:
parseIdent = do { str <- indent
; return (makeIdent str)
} <?> "identifier"
where firstAllowed = oneOf "_" <|> letter
Lösung
Im Teil zitierten Sie die lokale firstAllowed
Funktion nicht überall einsetzbar zu sein scheint. Was passiert, wenn Sie die where
Linie entfernen?
versuchen Sie könnten alternativ diese Art Signatur firstAllowed
hinzuzufügen:
where
firstAllowed :: Stream s m Char => ParsecT s u m Char
firstAllowed = ...
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow