Ich benutze (Missbrauch) Parser, um einige String-Transformation, z. normalizeWS :: Parser String
entfernt doppeltes Leerzeichen und normalizeCase
bildet spezifische Zeichenfolgen in Kleinbuchstaben ab. Ich benutze Parser, weil die Eingabedaten eine gewisse Struktur haben, zB müssen literale Strings nicht transformiert werden. Gibt es eine elegante Möglichkeit, die Ausgabe eines Parsers als Eingabe für den nächsten zu verwenden und so eine Transformationspipeline zu bilden? Etwas in der Ader (was natürlich nicht funktioniert)?Parsec: Feed-Ausgabe von einem Parser zu einem anderen
Vielen Dank im Voraus!
Ich glaube nicht, dass Sie so 'Parser' komponieren können, da sie beide aus dem zugrunde liegenden Stream lesen würden. Ich denke, Sie können besser als "String -> String" definieren, und wenn Sie eine 'Parser String' haben, die Sie normalisieren möchten, können Sie' fmap (normalizeWS. NormalizeCase) ''. – ryachza