2012-10-04 54 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擴展現在將所有中綴運算符視爲「大寫」。 (打破使用中綴運算符作爲類型變量的現有代碼...) –

相關問題