我才刚刚开始熟悉种类的概念,所以如果我没有很好地提出我的问题,请耐心等待......
值有类型:
3 :: Int
[1,2,3] :: [Int]
('c',True) :: (Char,Bool)
类型有种类:
the type 'Int' has kind *
the type '[Int]' also has kind *
but the type constructor [] has kind * -> *
similarly, the type (Char,Bool) has kind *
but the type constructor (,) has kind * -> * -> *
种类有什么?
它们有同类、流派、品种或品种吗?
这个抽象序列能走多远?我们是因为词穷而停止,还是因为走得更远没有价值而停止?或者,也许是因为我们很快就达到了人类认知的极限,而无法将我们的头脑围绕在更高级别的种类上?
一个相关的问题:语言为我们提供了值构造函数(如 cons 运算符)来生成值。语言还为我们提供了类型构造函数,例如 (,) 或 [] 来创建类型。是否有任何语言公开种类构造函数来制作种类?
另一个我很好奇的极端情况:我们显然有一个没有值的类型,表示为⊥,称为“底部类型”。有没有类型没有类型:底部类型?