haskell putStr输出额外的换行符 main=do 文件名

haskell putStr输出额外的换行符 main=do 文件名,haskell,io,Haskell,Io,我很确定putStr正在打印从文件中读取的换行符,除非prepare或sth正在将它们切掉。可能您的一个或多个函数有问题。很难从您提供的少量信息中看出更多信息。我删除了“\n”和putStrLn。我认为这是因为winghci和ghci有不同的buffer。不确定这是否会有任何区别,但您的输入文件是否有一致的行尾?是否有多余的\r字符? main = do file_name <- getLine text <- readFile file_name

我很确定
putStr
正在打印从文件中读取的换行符,除非
prepare
sth
正在将它们切掉。

可能您的一个或多个函数有问题。很难从您提供的少量信息中看出更多信息。我删除了“\n”和putStrLn。我认为这是因为winghci和ghci有不同的buffer。不确定这是否会有任何区别,但您的输入文件是否有一致的行尾?是否有多余的\r字符?
main = do
       file_name <- getLine
       text <- readFile file_name
       let b = prepare $ line text
       let x = sth b
       mapM_ (putStr . print_matrix . fst ) x