2017-06-21 64 views
4

为什么不允许在Haskell中作为中缀运算符?为什么不允许作为Haskell中缀运算符?

GHCi, version 8.0.2: http://www.haskell.org/ghc/ :? for help 
Prelude> :{ 
infixr 6 〉 
(〉) :: Int -> (Int -> (Int)) 
a 〉 b = a + 2*b 
:} 
print (1 〉 2) 

根据这一Haskell Reportany Unicode symbol or punctuationthis question它应该工作。

+1

虽然我觉得自己在某个时候尝试了'>'中缀,但我敢说这只是一个坏主意。允许像'''''','''','''',''''或'''符号定义为[quasiquote] .1.0/docs/Language-Haskell-TH-Quote.html#t:QuasiQuoter)字符。 – leftaroundabout

回答

6

这可能是一个错误。它似乎没有允许generalCategory标记为ClosePunctuationOpenPunctuation的任何字符。我建议你在GHC Trac上打开一张票,看看他们的想法。

https://ghc.haskell.org/trac/ghc/ticket/2687看起来相关并且暗示至少在某点OpenPunctuationClosePunctuation被认为是图形而不是符号。

相关问题