Haskell 模块和数据

Haskell module and data

我是 Haskell 的新手。下面的代码显示了一对整数。假设我想对这些对求和或相减。我该怎么做?

module IntPair where

data IntPair = IntPair Int Int
   deriving(Show)

plusIntPair :: IntPair -> Int
plusIntPair = undefined

假设我创建了一个 IntPair 1 2。 我应该得到答案 3.

您需要使用模式来解构您的 IntPair

像这样的东西应该可以工作(对于函数):

plusIntPair :: IntPair -> Int
plusIntPair (IntPair a b) = a + b

在上面的代码片段中,第一行声明 plusIntPair 的类型为 IntPair -> Int。第二行说该函数应该解构数据构造函数IntPair,将第一个和第二个参数分别绑定到ab,并添加它们。

然后 运行 它:

plusIntPair (IntPair 1 2)

(IntPair 1 2) 构造一个 IntPair 类型的值,plusIntPair 应用参数 IntPair 1 2.