5

为什么在 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 报告 any Unicode symbol or punctuation这个问题,它应该可以工作。

4

1 回答 1

7

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

https://ghc.haskell.org/trac/ghc/ticket/2687OpenPunctuation看起来相关,并表明至少在某些时候ClosePunctuation被认为是图形而不是符号。

于 2017-06-21T23:14:03.463 回答