问题 标准ML是否支持Unicode?


标准ML是否支持Unicode?

我相信它没有,但找不到任何SML说明这样的权威文档。

是或否是所有需要,但你必须知道一个事实。没有猜测或我相信答案。权威链接会更好。


9059
2018-01-20 13:46


起源



答案:


不是真的。目前标准中的所有内容都是使用的能力 \uXXXX 转义字符和字符串文字,至少它 允许 Unicode作为底层字符编码 char 或者是可选的 WideChar.char。但标准基础库并未规定对其他Unicode感知功能的任何支持。

特定的实现可能有额外的支持,你可能会找到一些第三方unicode库,但这是关于它(不幸的是,我没有指针)。


9
2018-01-20 15:53



至少 MLton 目前还不完全支持unicode。然而他们声称正在努力,所以在现在和天启之间的某个地方,我们可能会看到支持它的新版本:) - Jesper.Reenberg


答案:


不是真的。目前标准中的所有内容都是使用的能力 \uXXXX 转义字符和字符串文字,至少它 允许 Unicode作为底层字符编码 char 或者是可选的 WideChar.char。但标准基础库并未规定对其他Unicode感知功能的任何支持。

特定的实现可能有额外的支持,你可能会找到一些第三方unicode库,但这是关于它(不幸的是,我没有指针)。


9
2018-01-20 15:53



至少 MLton 目前还不完全支持unicode。然而他们声称正在努力,所以在现在和天启之间的某个地方,我们可能会看到支持它的新版本:) - Jesper.Reenberg


它取决于你的意思“Unicode”,它是许多事物的许多标准的集合。我没有看到任何完全支持Unicode的语言或系统,我甚至不知道这在所有细节中意味着什么。

您当然可以使用SML中的UTF-8:发明该编码是为了使ASCII应用程序能够轻松支持Unicode。这可能导致它比Unicode更好和更有效地表示Unicode。在Java中看到的UTF-16,它正式“支持Unicode”,但随后存在许多实际问题(如代理字符)。

对于SML字符串中的UTF-8,一个问题是如何使用字符串文字。 Poly / ML等系统允许重新定义ML顶级漂亮的打印机 type string,并且以Unicode友好的方式包装编译器来处理字符串文字也是可行的。这两个都是在Isabelle / ML中完成的,它基于Poly / ML。因此,如果您将这个大定理证明环境作为ML开发平台,您可以内置某种Unicode支持(通过所谓的“Isabelle符号”)。


3
2017-10-08 19:24



UTF-8使ASCII变得简单 数据 使用UTF-8程序,并且UTF-8数据不会破坏ASCII应用程序。实际上,更改任何假定ASCII数据与UTF-8一起正常工作的应用程序通常是一项可怕的任务,因为这些应用程序几乎普遍采用固定字符宽度,而UTF-8具有可变宽度字符。 - Nate C-K