我写了一个电话簿程序:
import System.IO
main = do
putStrLn "Pls input the name: "
handle <- openFile "phone.txt" ReadMode
contents <- hGetContents handle
name<-getLine
putStrLn . findNumber name $ toDict contents
findNumber x [] = "not found"
findNumber x ((y,z):ys) = if x==y then z else findNumber x ys
toDict :: String -> [(String, String)]
toDict = map read . lines
编译时出错。
phoneNumber.hs : 7:16: parse error on input '<-'
这里有什么问题?
答案 0 :(得分:2)
正如d8d0d65b3f7cf42所说,这几乎肯定是一个缩进问题。复制和粘贴代码不会出错,因此在SO上发布代码所需的重新格式化可能会掩盖您的问题。