我可以将空列表声明为[]
,但是,如何声明空元组?
我试过了:
for ( , )
ghci>(1,0 ) : [(,)]
但它给了我一个错误!
答案 0 :(得分:18)
元组是一种始终具有相同长度并始终具有相同类型的类型。因此,(Int, Int)
是来自(Int, Int, Int)
的不同的类型,与(Int, String)
的类型不同。
考虑到这一点,你可能有一个空元组。但是,这只是一个具有单个值的类型。此类型编写为()
,发音为 unit 。此类型的唯一值也是()
。
答案 1 :(得分:4)
请注意,(,)
和朋友充当函数。
ghci> (,) 2 3
(2,3)
列表有两个构造函数:[]
和:
,这使它们有空虚的可能性([]
表示“空”)。但是,元组每个只有一个构造函数。 (,)
是两元组类型的唯一构造函数,这意味着元组不提供空虚的可能性。每当你有一个两元组时,你可以保证它实际上有两个元素。