我有一个列表例如:[(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
到目前为止,我有这么多。有没有办法可以将它们混合在一起?
答案 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
。