haskell - 元组是否使用特殊语法?

标签 haskell operators

我正在学习 haskell 。我知道中缀运算符可以通过两种方式使用:

  • (+) 1 2
  • 1 + 2

但是元组呢?我可以写: (,) 1 2 但我不能写 1 , 2。为什么?为什么我必须使用括号并编写(1,2)?这是某种特殊的语法还是我只是遗漏了一些东西?

最佳答案

是的,元组语法很特殊。元组类型也很特殊(具有单个变体的数据类型的语法糖)。请注意 (a, b, c)((a, b), c)(a, (b, c))都是不同的类型:与普通运算符不同,元组构造不仅仅是可以嵌套的二元运算,还有(实际上)任何 n 的 n 元元组构造运算符。我想,二进制大小写的特殊外壳不会被认为是优雅的。

尝试允许不带括号的 n 元元组构造也可能会导致更复杂的语法,并出现一些令人惊讶的极端情况(参见 Python)。

关于haskell - 元组是否使用特殊语法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24971146/

相关文章:

haskell - 这个发电机组发电功能是如何工作的

c - 这个语句在c中如何执行条件操作?

c - 关于C编程的问题

haskell - 我对幺半群的理解有效吗?

haskell - 为什么在这个 SBV/Z3 代码中 Int32 排序比整数排序慢得多?

haskell - 在 Haskell 中创建 MIDI 文件

mysql - 检查最近更新时间是否大于10分钟

syntax - Ada 中的勾号或撇号字符代表什么?

r - R中==和%in%运算符之间的差异

haskell - 多态递归的应用