【发布时间】:2016-02-01 02:56:28
【问题描述】:
编译代码给出
(+++) :: [a] -> [a] -> [a]
lst1 +++ lst2 = if null lst1
then []
else (head lst1) : (tail lst1 +++ lst2)
main :: IO ()
main = do
putStrLn "start"
[1,2,3] +++ [4,5,6]
putStrLn "end"
无法将预期类型“IO a0”与实际类型“[Integer]”匹配 在 'do' 块的 stmt 中: [1, 2, 3] +++ [4, 5, 6] 在表达式中: 做 { putStrLn "开始"; [1, 2, ....] +++ [4, 5, ....]; putStrLn "结束" } 在“main”的等式中: 主要的 = 做 { putStrLn "开始"; [1, ....] +++ [4, ....]; putStrLn "结束" }
我没有做任何事情 - 对我来说看起来很好。
【问题讨论】:
-
你需要
print $ [1,2,3] +++ [4,5,6]。
标签: haskell type-mismatch