Standard MLはUnicodeをサポートしていますか?
私はそれがそのようなことを述べているSMLのための権威ある文書を見つけられないが見つけることができないと信じています。
必要なのは「はい」または「いいえ」だけですが、事実を知っておく必要があります。推測しないか、答えを信じます。信頼できるリンクの方が良いでしょう。
あまり。当面の標準には\uXXXX
、文字および文字列リテラルでエスケープを使用する機能があり、少なくとも、またはオプションのの基になる文字エンコードとしてUnicodeを使用できます。ただし、標準基底ライブラリは、追加のUnicode対応機能のサポートを規定していません。char
WideChar.char
特定の実装には追加のサポートがあるかもしれません、そしてあなたはおそらくいくつかのサードパーティのユニコードライブラリを見つけるかもしれません、しかしそれはそれについてです(残念ながら、私は手元にポインタを持っていません)。
それはあなたが「Unicode」によって何を意味するかによって大きく異なります。それは多くのもののための多くの標準のコレクションです。Unicodeを完全にサポートする言語やシステムを見たことがなく、それが詳細に何を意味するのかさえわかりません。
確かにSMLでUTF-8を使用できます。このエンコーディングは、ASCIIアプリケーションがUnicodeをサポートしやすくするために考案されました。これにより、たとえばJavaで見られるUTF-16よりも優れた効率的なUnicodeの表現が可能になる可能性があります。これは、公式に「Unicodeをサポート」しますが、実際には多くの問題があります(代理文字など)。
SML文字列のUTF-8では、1つの問題は文字列リテラルをどのように処理するかです。Poly / MLのようなシステムでは、MLトップレベルのきれいなプリンタを再定義できtype string
ます。また、Unicode対応の方法で文字列リテラルを処理するようにコンパイラをラップすることも可能です。これは両方とも、Poly/MLに基づくIsabelle/MLで行われます。したがって、その大きな定理証明環境をML開発プラットフォームとして使用すると、何らかのUnicodeサポートが組み込まれます(いわゆる「Isabelleシンボル」を介して)。