2016-12-06 8 views
0

Ich versuche, eine Zeichenfolge aus einer Datei einzulesen, die gut funktioniert. Aber ich versuche, Interpunktionszeichen durch nichts zu ersetzen, um sie zu löschen, es gibt mir immer die gleiche Nachricht. Mein Programmteil sieht so weit wie folgt aus:Kann nicht in Haskell ersetzen

module HA 

where 

import FPH 
import Data.List 

let contents2 = replace "." "" sonnet18 
let contents3 = replace "!" "" contents2 

sonnet18 eine Zeichenfolge in der Datei FPH.hs. ist Ich habe versucht, ein paar Möglichkeiten, es zu ersetzen, aber immer die Ausnahme "Parse Fehler (möglicherweise falsche Einrückung oder nicht übereinstimmende Klammern) Es sagt nicht viel und nachschlagen, hat noch nicht geholfen. Alle Einbuchtungen sind vier Leerzeichen und so weiter. ich kann nicht den Fehler finden. ich bin für jede Hilfe dankbar.

+0

nach Zugabe der do-block es gibt mir nur eine andere Fehlermeldung: "Variable nicht im Geltungsbereich: ersetzen :: [Char] -> [Char] -> [Char] -> t" –

+1

Was lässt Sie erwarten, dass 'ersetzen' existiert? –

+0

Da mache ich Es ist so, als wäre es in einem Tutorial gemacht worden und sie benutzen es so, dass ich es als Teil der Bibliothek ansehe, die ich importiere. –

Antwort

4

Sie nicht let am Toplevel verwenden können wie Sie. Es wird nur benötigt wird, während der Dolmetscher mit.

+1

"[Top-level' let'] wird nur benötigt, wenn der Interpreter verwendet wird. " - Und nicht einmal in diesem Fall, wenn Sie GHC 8 verwenden. – duplode

+0

Ja natürlich. Ich dachte irgendwie, ich hätte es schon in einem Do-Block versucht, aber offensichtlich habe ich es nicht versucht ... weil es funktioniert. Aber jetzt bekomme ich eine Ausgabe mit dem fehlenden Ausdruck. –

+0

Sieht aus wie es ist nicht das einzige Problem, das ich hier habe. –

Verwandte Themen