Я следовал за кодом в http://www.haskell.org/haskellwiki/Hitchhikers_guide_to_Haskell, а код (в главе 2) дал ошибку. В учебнике нет имени автора/электронной почты, поэтому я прихожу сюда для консультаций. Код ниже, и ошибка возникает в слове «eof».ошибка parsec в учебнике haskelwiki
module Main where
import Text.ParserCombinators.Parsec
parseInput =
do dirs <- many dirAndSize
eof
return dirs
data Dir = Dir Int String deriving Show
dirAndSize =
do size <- many1 digit
spaces
dir_name <- anyChar `manyTill` newline
return (Dir (read size) dir_name)
main = do
input <- getContents
putStrLn ("Debug: got inputs: " ++ input)
Спасибо. Кроме того, вызов parseInput из Main устанавливает контекст. В приведенном выше примере код строился, а основной код был из предыдущей версии и не вызывал parseInput. Когда я пересмотрел основной сегмент кода из следующего раздела, он сработал. – R71