小编Zhe*_*Koo的帖子

Haskell模式匹配向量

我正在关注Haskell的在线教程.我们定义了一个函数来添加二维向量,由元组对数字表示.以下是显式类型声明,它确保两个输入都是二维向量.

addVectors :: (Num a) => (a, a) -> (a, a) -> (a, a)
Run Code Online (Sandbox Code Playgroud)

我理解为什么以下函数定义使用模式匹配:它描述了输入数据应符合的模式.

addVectors (x1, y1) (x2, y2) = (x1 + x2, y1 + y2)  
Run Code Online (Sandbox Code Playgroud)

为什么以下替代函数定义不使用模式匹配?(fst)和(snd)保证可以工作,因为输入被显式声明为长度为2的元组.

两个函数定义有什么区别?

addVectors a b = (fst a + fst b, snd a + snd b)
Run Code Online (Sandbox Code Playgroud)

haskell vector pattern-matching

3
推荐指数
1
解决办法
187
查看次数

标签 统计

haskell ×1

pattern-matching ×1

vector ×1