又是我:)。我尝试编写一个程序,它将数字可被 5 整除的行复制到另一个文件。这是代码(对不起波兰名字):
import IO
przepiszConHelper :: Handle -> Handle -> Integer -> Integer -> IO ()
przepiszConHelper wejscie wyjscie liczba licznik = do
eof <- hIsEOF wejscie
if eof then return ()
else
linia <- hGetLine wejscie
if (mod licznik liczba) == 0 then
hPutStrLn wyjscie linia
przepiszConHelper wejscie wyjscie liczba (licznik + 1)
przepiszCon :: String -> String -> Integer -> IO ()
przepiszCon wejscie wyjscie liczba = do
wej <- openFile wejscie ReadMode
wyj <- openFile wyjscie WriteMode
przepiszConHelper wej wyj liczba 0
hClose wej
hClose wyj
main = przepiszCoN "wejscie.txt" "wyjscie.txt" 5
我认为它应该可以工作......但我得到一个奇怪的错误:
przepisz.hs:6:9:
Parse error in pattern: if eof then return () else linia
这对我来说毫无意义。我一直在另一个程序中使用相同的表达式,它就像一个伤害。我试图删除这些行并用不同的缩进编写它们(我记得我之前遇到过一些空白问题)。但我仍然得到同样的错误:(。
- 编辑
好的,我有第一个错误......它只是else do
代替else
. 但是这里又出现了一个问题:
przepisz.hs:11:25: parse error on input `przepiszConHelper'