就我能够收集而言,Haskell中的单个冒号用于列表理解。为什么它会出现在:t命令中?还在:quit命令?没有任何列表理解,是吗?
答案 0 :(得分:3)
:t
(:type
的缩写)语法对GHCi来说是特殊的,并且不是是Haskell语言语法的一部分。这类似于SQLite解释器接受.tables
作为命令的方式,即使这不是一个SQL语句也是如此。如果输入:?
,您可以看到GHCi理解的所有命令的完整列表。
至于在实际的Haskell代码中使用冒号:
所以,例如," ?:?
"是合法的运算符名称,:??
是合法的构造函数名称。
x ?:? y = ...whatever...
data Foobar = Int :?? Bool