我如何声明一个空元组?

时间:2012-02-27 08:55:09

标签: haskell

我可以将空列表声明为[],但是,如何声明空元组?

我试过了:

for ( , ) 
ghci>(1,0 ) : [(,)] 

但它给了我一个错误!

2 个答案:

答案 0 :(得分:18)

元组是一种始终具有相同长度并始终具有相同类型的类型。因此,(Int, Int)是来自(Int, Int, Int)不同的类型,与(Int, String)的类型不同。

考虑到这一点,你可能有一个空元组。但是,这只是一个具有单个值的类型。此类型编写为(),发音为 unit 。此类型的唯一值也是()

答案 1 :(得分:4)

请注意,(,)和朋友充当函数

ghci> (,) 2 3
(2,3)

列表有两个构造函数:[]:,这使它们有空虚的可能性([]表示“空”)。但是,元组每个只有一个构造函数。 (,)是两元组类型的唯一构造函数,这意味着元组不提供空虚的可能性。每当你有一个两元组时,你可以保证它实际上有两个元素。