构建符合类型的方式
基础类型:int bool unit char
复合类型:tuple list option
要创建复合类型,实际上只有三种必不可少的组成部分;任何正式的语言都以某种方式提供了这些部分。下面的术语名称可能不是准确的,但不妨碍它是思考此概念的好方式。
三种基本组成部分
Each of:t值包含t1 t2 t3 ... tn中每一个值
该类型对大多数人来说是比较熟悉的,Tuple就是一个例子:int * bool描述了包含一个int和一个bool的值。
有字段的java类也是一个Each of类型。One of:t值包含的是t1 t2 t3 ... tn其中一个值
该类型也很常见,不幸的是许多入门编程课程都没有强调此类型。int option是一个简单的示例:此类型包含一个int值或者不包含int值。在ML若需要int或bool的类型,我们需要使用datatype绑定;在面向对象的语言中,如在java中,One of类型是通过子类来实现的。Self reference:t值可以引用另一个t值
该类型允许描述递归数据结构。在与上面两种类型结合使用时,通常非常有用。例如,int list描述了不包含任何值或包含
嵌套使用
(int * bool) list list * (int option) list * bool