Wie andere bereits erwähnt haben, haben Sie einen let
Schlüsselwort vor t = 1
verpasst . Ich war überrascht zu sehen, dass Sie immer noch einen Parse-Fehler bekommen, sobald dieser hinzugefügt wird.
Eine syntaktisch gültige Lösung mit Klammern und Semikolons wie in Ihrem ursprünglichen Beispiel ist:
module Main where
import System.IO
import Data.List.Split
main = do {
flag <- isEOF;
if flag then return 0
else do { s <- getLine
; let t = 1
; print s
}
}
Um es zu bekommen Sie return 0
-return()
ändern zu kompilieren:
module Main where
import System.IO
import Data.List.Split
main = do {
flag <- isEOF;
if flag then return()
else do { s <- getLine
; let t = 1
; print s
}
}
Da es sich um eine 'do'-block und du brauchst' let'. – arrowd
Wenn ich let am Anfang dieser Zeile hinzufügen, bekomme ich "Parse-Fehler in Let Binding: fehlende erforderlich" in "" stattdessen. –