标准ML是否支持Unicode?

时间:2013-01-20 13:46:32

标签: sml polyml

标准ML是否支持Unicode?

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

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

2 个答案:

答案 0 :(得分:9)

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

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

答案 1 :(得分:3)

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

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

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