我有一个Haskell软件包,理想情况下,我希望使用一些特定的Unicode字形,但如果它们不可用或者无法正确呈现,则选择它们。
例如,我想测试我的代码当前运行的环境是否可以在表达式(例如
)中呈现组合上线(U + 0305)和组合低线(U + 0332)K\818\773L
作为
K̲̅L
而不是
K_ ̅L
或甚至
K̲ÌL
有没有办法在Haskell中执行此操作?例如
之类的东西decorate ch = if someTestForCapabilities then ch:"\818\773" else ['[',ch,']']
我的current approach是寻找记录这一点的方法,并为用户准备一些奇怪的输出;但是我更喜欢在运行时检测相关功能,并在需要时进行适当的替换(例如[K]
)。
注意:出于某种原因,第一个版本可能无法在此正确呈现。它似乎出现在related question和编辑器中。