我正在学习哈斯克尔.我知道中缀运算符可以用两种方式:
(+) 1 2
1 + 2
但是元组怎么样?我可以写:(,) 1 2
但我写不出来1 , 2
.为什么?为什么我必须使用括号并写(1,2)
?它是某种特殊的语法还是我只是缺少一些东西?
小智 11
是的,元组语法很特殊.元组类型也是特殊的(data
具有单个变体的类型的语法糖).请注意,(a, b, c)
并((a, b), c)
和(a, (b, c))
都是不同的类型:不同于普通的运营商,元组建设不仅是可以被嵌套二元运算,有n元元组建设运营商(几乎)任意n.我想,二元外壳的特殊外壳不会被认为是优雅的.
试图允许没有括号的n元组元结构也可以使一些更复杂的语法与一些令人惊讶的极端情况(参见Python).