haskell - Haskell 不支持 unicode 符号构造函数(例如:◁)?
问题描述
例如:
{-# 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
环境变量或类似的方法来解决这个问题。
推荐阅读
- c# - 使用 C# 从 MSSQL 动态创建类和可枚举对象
- excel - 当另一个工作表处于活动状态时,Excel VBA 宏不会删除单元格
- path - Tomcat 8.5 上下文路径无法正常工作
- javascript - 如何检查是否启用了 line-clamp?
- c# - Newtonsoft json 将缺少的 int 值反序列化为空值而不是零
- python - How to properly configure a Service Account in Google AppEngine Flex w/ Python?
- javascript - Div 切换它的显示开/关,但能够单击输入
- visual-studio-code - How setup VSCode + Chrome Debugger + Docker in MacOS (Docker for Mac)
- html - 更改 submit_tag 上的文本
- mysql-error-1064 - #1045 - Access denied