编译代码
(+++) :: [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'块中:[1,2,3] +++ [4,5,6] 在表达式中: do {putStrLn“start”; [1,2,....] +++ [4,5,....]; putStrLn“结束”} 在'main'的等式中: 主要 = do {putStrLn“start”; [1,....] +++ [4,....]; putStrLn“结束”}
我没有做任何事情 - 它看起来很好。
答案 0 :(得分:1)
要解决不匹配错误,您只需使用' print'功能。像那样:
(+++) :: [a] -> [a] -> [a]
lst1 +++ lst2 = if null lst1
then []
else (head lst1) : (tail lst1 +++ lst2)
main :: IO ()
main = do
putStrLn "start"
print ([1,2,3] +++ [4,5,6])
putStrLn "end"
现在,我不知道你想要用' +++'功能,但至少现在你不担心类型错误。
希望它有所帮助!