Haskell 如何使用zipWith(+;)添加两个数据类型[[double]]的列表?

Haskell 如何使用zipWith(+;)添加两个数据类型[[double]]的列表?,haskell,zipwith,Haskell,Zipwith,我在哈斯克尔做这件事。我试图添加两个列表来收集,我正在使用zipWith函数来完成这项工作。但是数据类型与我的add函数不匹配 这就是我尝试过的 add :: [[Double]] -> [[Double]] -> [[Double]] add = zipWith [] where zipWith :: (a -> b) -> [a] -> [b] zipWith _ [] = [] zipWith [] _ = [] zipWith (+) (x:xs) (y:y

我在哈斯克尔做这件事。我试图添加两个列表来收集,我正在使用zipWith函数来完成这项工作。但是数据类型与我的add函数不匹配

这就是我尝试过的

add :: [[Double]] -> [[Double]] -> [[Double]]
add = zipWith []
where zipWith :: (a -> b) -> [a] -> [b]
zipWith _ [] = []
zipWith [] _ = []
zipWith (+) (x:xs) (y:ys) = (+) x y : zipWith (+) xs ys
我想添加两个这样的列表

add [[1,2],[3,4]] [[10,20],[30,40]]
    [[11,22],[33,44]]
我想不需要进一步解释了吧


我想不需要进一步解释了?

为什么你要自己定义
zipWith
而不是使用普通的?为什么要使用
(+)
作为变量名?这很让人困惑。为什么你要自己定义
zipWith
,而不是使用普通的?为什么要使用
(+)
作为变量名?这很令人困惑。
zipWith (zipWith (+))