2013-01-20 18 views
11

標準MLはUnicodeをサポートしていますか?標準MLはUnicodeをサポートしていますか?

私はそれがSMLのような正式な文書を見つけることはできないと信じています。

すべてが必要ですが、事実を知る必要があります。推測や答えを信じていない。権威あるリンクが良いでしょう。

答えて

9

文字列と文字列のリテラルで\uXXXXをエスケープし、charまたはWideChar.charの基本文字エンコードとしてユニコードを使用できるようにするには、少なくともを使用することが可能です。しかし、標準基盤ライブラリは、Unicode対応の追加機能のサポートを規定していません。

特定の実装には追加のサポートがあるかもしれませんが、サードパーティ製のユニコードライブラリがあるかもしれませんが、それは残念です(残念ながら、手元にはポインタがありません)。

+0

Atleast [MLton](http://mlton.org/Unicode)は現在、ユニコードを完全にサポートしていません。しかし、彼らはそれに取り組んでいると主張しているので、現在と黙示録の間のどこかで、それをサポートする新しいバージョンが登場するかもしれません:) –

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の開発プラットフォームとして環境を証明するという大きな定理を採用すれば、(いわゆる "Isabelleのシンボル"を介して)何らかのUnicodeサポートが組み込まれています。

+0

UTF-8はUTF-8プログラムでASCII *データ* ASCIIアプリケーションがUTF-8データによってひどく壊れないようにするためです。実際には、ASCIIデータがUTF-8で正常に動作することを前提とするアプリケーションを変更するのは、一般的には巨大な作業ですが、そのようなアプリケーションでは一般的に固定文字幅と見なされ、UTF-8では可​​変幅文字が使用されるためです。 –

関連する問題