带有连字符的Haskell数据构造函数名称

时间:2015-01-05 12:33:04

标签: haskell types

我希望有一个名称包含一些连字符的数据构造函数,如下所示:

data D = The-First |  The-Second deriving (Ord, Eq, Show, Read)

有人可以帮忙吗?

2 个答案:

答案 0 :(得分:3)

Haskell标准不允许您想要的内容。引用相关部分:

来自here

  

Haskell中有六种名称:变量和名称   构造函数表示值;那些类型变量,类型   构造函数和类型类指的是与该类型相关的实体   系统;和模块名称是指模块。有两个限制   在命名:

     

1.变量和类型变量的名称是以小写字母或下划线开头的标识符;其他四种名称是以大写字母开头的标识符。

     
      
  1. 不能将标识符用作类型构造函数的名称和同一范围内的类。
  2.   

来自here

  

标识符由一个字母后跟零个或多个字母组成,   数字,下划线和单引号。

总结:只是习惯了CamelCase格式。一段时间后你会开始喜欢它。 :)

答案 1 :(得分:0)

好吧,我认为如果有人想要可能使用模板Haskell接受表达式并生成构造函数名称(我从来没有使用过它,所以我不知道它是否可以在语法的那一点上启动)。我不知道如何允许[The-First]而不是[The - First],因为他们解析相同的。

但实际上,使用CamelCase或Camel_Case要好得多,以至于你不想看任何其他疯狂的选择。