在Haskell的列表中添加Tuple的相应值

时间:2017-11-08 02:08:51

标签: list haskell tuples

我有一个列表例如:[(1,2),(3,4),(5,6)],函数应该返回相应元组的总和。所以,这个清单应该返回(9,12)。我知道如何让元组单独加起来,但是我一起遇到麻烦。

sumSecondTuple list = foldl (\acc (x,y) -> (+) y acc) 0 list  
    sumFirstTuple list = foldl (\acc (x,y) -> (+) x acc) 0 list

到目前为止,我有这么多。有没有办法可以将它们混合在一起?

1 个答案:

答案 0 :(得分:1)

您还可以使用 var result = $.ajax({ type: "post", url: "./php/getAJX.php", dataType: 'json', context: this, data: { one: one, two: two }, success: function(data) { this.myProperty = data[0][0]; }, error:function(request, status, error) { console.log("Something went wrong." + request.responseText + status + error); } });

foldr1

在这种情况下,

foldr1 :: Foldable t => (a -> a -> a) -> t a -> a

但是,sumSecondTuple :: Num a => [(a,a)] -> (a,a) sumSecondTuple = foldr1 f where f = (\ (a,b) (c,d) -> (a+c,b+d) ) 会返回异常sumSecondTuple []。因此,最好在这种情况下使用Prelude.foldr1: empty list而不是使用foldr