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
,将第一个和第二个参数分别绑定到a
和b
,并添加它们。
然后 运行 它:
plusIntPair (IntPair 1 2)
(IntPair 1 2)
构造一个 IntPair
类型的值,plusIntPair
应用参数 IntPair 1 2
.
我是 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
,将第一个和第二个参数分别绑定到a
和b
,并添加它们。
然后 运行 它:
plusIntPair (IntPair 1 2)
(IntPair 1 2)
构造一个 IntPair
类型的值,plusIntPair
应用参数 IntPair 1 2
.