Haskell中单个冒号的含义:t

时间:2016-01-10 16:38:25

标签: haskell

就我能够收集而言,Haskell中的单个冒号用于列表理解。为什么它会出现在:t命令中?还在:quit命令?没有任何列表理解,是吗?

1 个答案:

答案 0 :(得分:3)

:t:type的缩写)语法对GHCi来说是特殊的,并且不是是Haskell语言语法的一部分。这类似于SQLite解释器接受.tables作为命令的方式,即使这不是一个SQL语句也是如此。如果输入:?,您可以看到GHCi理解的所有命令的完整列表。

至于在实际的Haskell代码中使用冒号:

  • 冒号本身就是一个列表构造函数。这是保留名称,永远不能重新定义。
  • 您应该知道函数名称始终以小写开头,而构造函数名称始终以大写字母开头。好吧,以类似的方式,中缀构造函数必须以冒号开头,而普通的中缀运算符不能以冒号开头(但可能在其他地方包含冒号)。 / LI>

所以,例如," ?:?"是合法的运算符名称,:??是合法的构造函数名称。

x ?:? y = ...whatever...

data Foobar = Int :?? Bool