引入
序列 List
、树 Tree
具有同样的特点:可能任意长短,但是结构简单并有规律
相比于将这几种数据类型区分开,我们选择将它们概括为一种基本形式,即归纳类型
利用变式类型和元组类型,我们尝试再次定义 List
如下:
NatList = <nil: Unit, cons: {Nat, NatList}>
引入一个递归操作符 μ
和一个元变量 X
NatList = μX . <nil: Unit, cons: {Nat, X}>
μ
代表为满足 X = <nil: Unit, cons: {Nat, X}>