構(gòu)建符合類型的方式
基礎(chǔ)類型:int bool unit char
復(fù)合類型:tuple list option
要創(chuàng)建復(fù)合類型,實際上只有三種必不可少的組成部分;任何正式的語言都以某種方式提供了這些部分。下面的術(shù)語名稱可能不是準(zhǔn)確的,但不妨礙它是思考此概念的好方式。
三種基本組成部分
Each of:t值包含t1 t2 t3 ... tn中每一個值
該類型對大多數(shù)人來說是比較熟悉的,Tuple就是一個例子:int * bool描述了包含一個int和一個bool的值。
有字段的java類也是一個Each of類型。One of:t值包含的是t1 t2 t3 ... tn其中一個值
該類型也很常見,不幸的是許多入門編程課程都沒有強(qiáng)調(diào)此類型。int option是一個簡單的示例:此類型包含一個int值或者不包含int值。在ML若需要int或bool的類型,我們需要使用datatype綁定;在面向?qū)ο蟮恼Z言中,如在java中,One of類型是通過子類來實現(xiàn)的。Self reference:t值可以引用另一個t值
該類型允許描述遞歸數(shù)據(jù)結(jié)構(gòu)。在與上面兩種類型結(jié)合使用時,通常非常有用。例如,int list描述了不包含任何值或包含
嵌套使用
(int * bool) list list * (int option) list * bool