Pairs
构建:
- 语法(syntax):
(e1, e2)
- 类型检查(type check):
- e1有类型ta,e2有类型tb;得到一个新类型:ta * tb
- 求值规则(evaluation rules):
- 计算参数,e1得到va, e2得到vb,结果(va, vb)。备注:a pair of values is a value !
访问:
- 语法(syntax):
2-Tuples :
val e = (e1, e2)
#1 e 返回e1
#2 e 返回e2
- 类型检查(type check):
- e有类型:ta * tb,所以#1 e有类型:ta,#2 e有类型:tb
- 求值规则(evaluation rules):
- e有值:(va, vb),所以#1 e有值:va,#2 e有值:vb
Tuples
构建:
- 语法(syntax):
(e1, e2, ..., en)
- 所以,Pairs只是一个2维元组(2-Tuples)
- 类型检查(type check):
- 有类型:ta * tb * ... * tn
- 求值规则(evaluation rules):
- 有值:(ta, tb, ..., tn)
访问:
参考Pairs
实例
简单:
val aPairs = (1, 2) (* type: int * int value: (1, 2) *)
val bPairs = (1+1, 2+4) (* type: int * int value: (2, 6) *)
val cPairs = (true, 2+4) (* type: bool * int value: (true, 6) *)
组合:
val caPairs = (1, (2, 4)) (* type: int * (int * int) value: (1, (2, 4) *)
val caPairs = (5+6, (2, 3+2)) (* type: int * (int * int) value: (11, (2, 5) *)
val cPairs = ((true, 1), 2+4) (* type: ((bool * int) * int) value: ((true, 1) * 6)
理论上可以嵌套任意层数
网友评论