在 Haskell 中添加两个元组的元素

Obs*_*_42 1 haskell functional-programming tuples sum

如何在 Haskell 中添加两个元组的元素以得到第三个元组。签名是这样的,

Add :: (Int,Int) -> (Int,Int) ->(Int,Int)
Add a b = ....
Run Code Online (Sandbox Code Playgroud)

到目前为止,我只能想到这个:

Add a b = [(x, y) | a = (x1, y1), b = (x2, y2), x=x1+x2, y =y1+y2n]
Run Code Online (Sandbox Code Playgroud)

然而,我对 Haskell 很陌生,那么我所做的是否正确?

use*_*984 7

你所做的事情是不正确的。列表理解不是执行此操作的正确方法。

使用模式匹配来提取元组的元素:

add :: (Int, Int) -> (Int, Int) -> (Int, Int)
add (x, y) (u, v) = (x+u, y+v)
Run Code Online (Sandbox Code Playgroud)

fst使用和提取元组的元素snd

add2 :: (Int, Int) -> (Int, Int) -> (Int, Int)
add2 x y = (fst x + fst y, snd x + snd y)
Run Code Online (Sandbox Code Playgroud)

另请记住,Haskell 中的函数不能以大写字母开头。