为什么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报告的规定,任何Unicode符号或标点符号,以及这个问题的解答中所述,都应可行。
这可能是一个bug。似乎不允许任何被generalCategory标记为ClosePunctuation或OpenPunctuation的字符。建议您在GHC Trac上开个票,看看他们的想法。https://ghc.haskell.org/trac/ghc/ticket/2687看起来相关,并且表明至少在某些时候,OpenPunctuation和ClosePunctuation被认为是图形而不是符号。
〉
变成中缀,但我敢说这只是一个坏主意。更有意义的做法是允许像❨
、❬
、❴
、⟦
或“
这样的符号作为自定义准引用字符。 - leftaroundabout