多元组和列表
多元组和列表具有很强的表达能力。
我们将介绍
模式匹配
列表概括
多态函数
多元组
一个多元组由多个值构成,每个值称为多元
组的分量。
例如
•
平面上的点 (x,y)
•
三维空间的点 (x,y,z)
•
购物项目 (”Wulong Tea”, 55)
•
不包含任何元素的元组 ()
多元组类型
一个多元组类型说明每个分量的类型。
例如
(1,2) :: (Int, Int)
(1.5, 2.25) :: (Float, Float)
(”Wulong Tea”, 55) :: (String, Int)
() :: () 单位类型
类型定义
我们可以给多元组类型命名 :
type Purchase = (String, Int)
Purchase 和 (String, Int) 可以互换 :
tea :: Purchase
tea = (”Wulong Tea”, 55)
类型名以大写字母开始
模式匹配( Pattern matching )
多元组上的函数可以通过模式匹配定义。
例如, addPair (x, y) 返回 x + y.
addPair :: (Int, Int) -> Int
addPair (x, y) = x + y
模式可以嵌套 :
shift :((Int, Int), Int) -> (Int, (Int, Int))
shift ((x, y), z) = (x, (y, z))
一格模式,而不
是一个简单变量
评论1