我正在从learnyouahaskell.com学习Haskell .我无法理解类型构造函数和数据构造函数.例如,我真的不明白这个的区别:
data Car = Car { company :: String
, model :: String
, year :: Int
} deriving (Show)
Run Code Online (Sandbox Code Playgroud)
还有这个:
data Car a b c = Car { company :: a
, model :: b
, year :: c
} deriving (Show)
Run Code Online (Sandbox Code Playgroud)
我知道第一个只是使用一个构造函数(Car)来构建类型的数据Car.我真的不明白第二个.
另外,数据类型如何定义如下:
data Color = Blue | Green | Red
Run Code Online (Sandbox Code Playgroud)
适合所有这些?
据我所知,第三个例子(Color)是一个可以处于三种状态的类型:Blue,Green或Red.但这与我理解前两个例子的方式有冲突:这个类型Car只能处于一种状态Car,它可以构建各种参数吗?如果是这样,第二个例子如何适应?
基本上,我正在寻找一个解释,统一上述三个代码示例/结构.
haskell ×1