Как уже отмечалось, вы пропустили let
ключевое слово, прежде чем t = 1
, Я был удивлен, увидев, что вы все равно получите ошибку разбора, как только это будет добавлено.
Синтаксически правильное решение с фигурными скобками и точкой с запятой, как в исходном примере:
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
}
}
Для того, чтобы получить его для компиляции вы можете изменить return 0
к return()
:
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
}
}
Поскольку это 'do'-block, и вам нужно' let'. – arrowd
Если я добавлю let в начале этой строки, я получаю «parse error in let binding: missing required» in »вместо этого. –