例如:

{-# LANGUAGE UnicodeSyntax #-}

data Symbolic n
  = Constant n
  | Variable String
  | Symbolic n :+ Symbolic n
  | Symbolic n :* Symbolic n
  | Symbolic n :◁ Symbolic n
  deriving (Show)

此代码已成功加载到GHCi中。

然后我输入:
Constant 2 :* Variable "a"

没关系。

但是当我输入:
Constant 2 :◁ Variable "a"

***例外::hPutChar:无效参数(无效字符)

这是否意味着Haskell不支持Unicode符号构造函数?

如何使其支持Unicode符号构造函数?

环境:
GHCi 8.6.3(WinGHCi)
Windows 7的

谢谢。

新观察:

当◁出现在源文件中时可以使用,但是您不能在REPL中输入((我使用WinGHCi)。

最佳答案

问题不在于您的代码或构造函数,而仅在于您的环境未设置以便Ha​​skell可以打印unicode字符。尝试

Prelude> putStrLn "\9731"

并且您应该看到相同的问题。

我不是Unicode和Windows方面的专家,但是大概您可以通过设置LANG=C.utf8环境变量或类似变量来解决此问题。

关于haskell - Haskell不支持Unicode符号构造函数(例如:◁)吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55353647/

10-12 17:52