[英]Modelling the composition of units (e.g. Inch, Dollar, etc) in Haskell
[英]Haskell doesn't support unicode symbol constructor (e.g.: ◁)?
例如:
{-# 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)。
问题不在于您的代码或构造函数,而在于您的环境没有设置为 Haskell 可以打印 unicode 字符。 尝试
Prelude> putStrLn "\9731"
你应该看到同样的问题。
我不是 Unicode 和 Windows 方面的专家,但大概您可以通过设置LANG=C.utf8
环境变量或类似环境变量来解决此问题。
在@Cubic 之后,可以通过在 GHCi 之前运行chcp 65001
来解决此问题。
我在 Windows 7 命令行中使用堆栈:
X:\you-path> chcp 65001
X:\you-path> stack ghci
*Main> Constant 2 :◁ Variable "a"
Constant 2 :◁�� Variable "a"
有用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.