使用类型参数创建数据类型

类型构造函数可以采用一个或多个类型参数:

data Foo a b = Bar a b | Biz a b

Haskell 中的类型参数必须以小写字母开头。我们的自定义数据类型还不是真正的类型。为了创建我们类型的值,我们必须用实际类型替换所有类型参数。因为 ab 可以是任何类型,我们的值构造函数是多态函数。

创建自定义类型的变量

let x = Bar "Hello" 10      -- x::Foo [Char] Integer
let y = Biz "Goodbye" 6.0   -- y::Fractional b => Foo [Char] b
let z = Biz True False      -- z::Foo Bool Bool