考虑以下几点:在GHCI为什么underconstrained类型有时会给运行时错误?
do putStr ""
return $ map read ["2"]
运行,这给
[*** Exception: Prelude.read: no parse
我期待一个 “ambigious类型变量” 编译错误,而是这在运行时出现。为什么?
为了便于比较,以下三个例子做给“暧昧类型变量”错误:
map read ["2"]
do putStr ""
return $ read "2"
do [1]
return $ map read ["2"]
顺便说一句,这里就是我遇到了这个原代码。
readInts :: String -> IO [Integer]
readInts f = do s <- readFile f
return $ map read $ splitOneOf " \n" s
这已得到解决。我的原始代码尝试从列表末尾的“”中读取。当我在GHCI中进行调查时,我因不同的原因收到了相同的例外情况。
Windows行结尾? ('\ r \ n') – 2012-12-15 23:47:38