12

Does Standard ML support Unicode?

I believe it does not but cannot find any authoritative documentation for SML stating such.

A yes or no is all that is needed, but you must know for a fact. No guessing or I believe answers. An authoritative link would be better.

4

2 回答 2

9

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

特定的实现可能有额外的支持,您可能会找到一些第三方 unicode 库,但仅此而已(不幸的是,我手头没有指针)。

于 2013-01-20T15:53:43.217 回答
3

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

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

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

于 2013-10-08T19:24:40.570 回答