【发布时间】:2017-10-17 04:09:51
【问题描述】:
我正在尝试实现一个将两个列表的内容相加的函数。这是我的代码:
sum'' :: Num a => [a] -> [a] -> [a]
sum'' [] [] = []
sum'' (x:xs) (y:ys) = (x + y) : sum'' xs ys
如果我输入:
sum'' [1,2,3] [4,5,6]
我得到[5,7,9],这就是我想要的。我遇到的问题是不同的列表大小。如果我输入:
sum'' [] [1,2,3]
我希望它返回 []。或者
sum'' [1,2] [4,5,6]
我希望它返回[5,7]。我收到此错误,不知道为什么:Non-exhaustive patterns in function sum''。
任何帮助将不胜感激。
【问题讨论】:
-
使用
-Wall标志打开警告会使 GHC 在编译时警告错过的案例。推荐。
标签: list haskell functional-programming pattern-matching