我想要一個函數,該函數可以給出給定列表中所有列表的所有頭的總和。我想用這個:名單列表中的頭數總和
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]]
我想要一個函數,該函數可以給出給定列表中所有列表的所有頭的總和。我想用這個:名單列表中的頭數總和
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]]
這將做你所描述什麼
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]]
爲什麼你用0?謝謝 – user1876106
@ user1876106 0是起始值。任何零值的總和爲0. –
我怎樣才能把一個列表中的元素應用到head元素上,而對其他元素呢?例如[[1,0,0],[1,1,1],[1,0,0]] = [3,1,1]。謝謝 – user1876106
映射它OP實際需要的[INT] - >一個,但它看起來像OP真正想要的折東西 – soulcheck