我想要一个函数,它给出了给定列表中所有列表的所有头的总和。我正在尝试这个:
verticalParity :: [Int] -> [Int] -> Int
verticalParity (x:xs) (y:ys) = x + y
为什么我不能这样做?
map verticalParity [[2,0,2,2,2,1], [5000,0,2,3,2,1], [26,1,2,3,44,4]]
答案 0 :(得分:8)
这将完成您所描述的内容
sum . map head
你发布的功能不起作用,因为你想要完成的不是地图,它是一个折叠(总和是一个例子)。
您也可以将verticalParity函数更改为此
verticalParity :: Int -> [Int] -> Int
verticalParity x (y:ys) = x + y
并使用此
foldl verticalParity 0 [[2,0,2,2,2,1],[5000,0,2,3,2,1],[26,1,2,3,44,4]]