标准ML是否支持Unicode?标准ML是否支持Unicode?
我相信它没有,但无法找到任何SML的权威性文档陈述。
一个是或否是所需要的,但你必须知道一个事实。没有猜测或我相信答案。权威的联系会更好。
标准ML是否支持Unicode?标准ML是否支持Unicode?
我相信它没有,但无法找到任何SML的权威性文档陈述。
一个是或否是所需要的,但你必须知道一个事实。没有猜测或我相信答案。权威的联系会更好。
不是。所有有在暂时的标准是在字符和字符串使用\uXXXX
逃逸的能力,以及它确实至少允许 Unicode作为底层字符编码char
或可选WideChar.char
。但标准基础库不规定对额外的Unicode感知功能的任何支持。
特定的实现可能会有额外的支持,你可能会找到一些第三方的unicode库,但这是关于它(不幸的是,我手边没有指针)。
它很大程度上取决于“Unicode”,它是许多标准的集合。我还没有看到任何支持Unicode的语言或系统,我甚至都不知道这是什么意思。
您当然可以在SML中使用UTF-8:编码是为了使ASCII应用程序易于支持Unicode而发明的。这可能会导致它比Unicode更好更高效地表示Unicode。在Java中看到的UTF-16,它正式支持Unicode,但是它有许多实际问题(如代理字符)。
在SML字符串中使用UTF-8时,一个问题是如何使用字符串文字。像Poly/ML这样的系统允许为type string
重新定义ML顶层漂亮打印机,并且编译器以Unicode友好的方式处理字符串文字也是可行的。这两项都是在基于Poly/ML的Isabelle/ML中完成的。所以,如果你把这个大定理验证环境作为ML开发平台,你就有了一些Unicode内置的支持(通过所谓的“Isabelle符号”)。
UTF-8使得ASCII *数据*可以轻松用于UTF-8程序,并且对于ASCII应用程序不会被UTF-8数据破坏太多。实际上,更改任何假定ASCII数据与UTF-8一起正常工作的应用程序通常是一项可怕的任务,因为这类应用程序几乎普遍采用固定的字符宽度,而UTF-8具有可变宽度的字符。 –
Atleast [MLton](http://mlton.org/Unicode)目前不完全支持unicode。但是他们声称正在开发它,所以在现在和启示录之间的某个地方,我们可能会看到一个支持它的新版本:) –