2012-10-04 57 views
11

这是一个新的数据类型定义:在haskell中,什么:+:数据类型定义中的意思是什么?

data Total a = Total a :+: Total a 
       |... 

是什么:+:平均在这种类型的定义是什么?

+0

它在标准Haskell中无效。这是一个奇怪的GHC扩展:) – singpolyma

+0

@singpolyma:它是标准的[Haskell 98语法](http://www.haskell.org/onlinereport/syntax-iso.html)(请参阅_consym_制作)。毕竟,列表的':'构造函数只是这个的一个特例。也许你正在考虑'TypeOperators'? – hammar

+0

@hammar噢,嗯,我正在考虑'TypeOperators'。我不知道用数据构造函数的操作符是标准的。这很丑陋。通常丑陋的东西是扩展名:) – singpolyma

回答

9

这是一个用infix形式编写的数据构造函数。如果以:开头,则可以将操作员作为构造函数。

+5

要轻描淡写地说,':'是一个大写的符号:D –

+0

为什么会有:after +? – Sam

+0

请注意,从GHC 7.6起,TypeOperators扩展现在将所有中缀运算符视为“大写”。 (打破使用中缀运算符作为类型变量的现有代码...) –

相关问题