为什么在 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
和这个问题,它应该可以工作。
为什么在 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
和这个问题,它应该可以工作。
这可能是一个错误。它似乎不允许任何标记为ClosePunctuation
或OpenPunctuation
的字符generalCategory
。我建议你在 GHC Trac 上开一张票,看看他们是怎么想的。
https://ghc.haskell.org/trac/ghc/ticket/2687OpenPunctuation
看起来相关,并表明至少在某些时候ClosePunctuation
被认为是图形而不是符号。