4

私の理解では、「純粋な OCaml」は OCaml の標準であるすべてのものを意味し、 「純粋に」機能的ではない機能を含みますが、「純粋な機能的」は通常の属性を意味します。つまり、副作用がない、例外処理がないなどです。その意味では、"純粋な OCaml" 実装は、たとえば、C を使用した OCaml または C++ 実装に反対するものと言われています。

しかし、私は最近、これについて、特定のサークルでは「純粋な OCaml」が OCaml の「純粋に機能するサブセット」を意味すると非常に主張する誰かと議論しました。

この 2 つの意味は、コミュニティで実際に使用されていますか? そのような曖昧さは存在しますか?「Pure OCaml」を第二の意味で使用している、高く評価されているソースへのポインタはありますか?

4

3 に答える 3

8

コミュニティ全体が問われているため、このような質問に答えるのは困難です。OCamlメーリングリストの方が適していますが、そこにいる人々は少しイライラするかもしれません.

ですから、コミュニティ全体にお答えすることはできませんが、個人的にはあなたがここにいると思います. C誰かが「純粋な OCaml」と言うとき、彼は通常、プログラムがスタブなしで OCaml 言語のみで実装されていることを意味します。

OCaml の機能的に純粋なサブセットについては聞いたことがありません。そして、純粋に関数型の言語機能だけを使用して何かを実装することは事実上不可能だと思います。たとえば、Stringモジュール、例外、IO サブシステム全体は厳密に純粋ではありません。

于 2016-01-28T16:12:05.797 に答える
6

「ピュア OCaml」とは、OCaml 言語のみで書かれたアプリケーションまたはライブラリを指します。

モジュールは「OCaml 言語の一部ではない」ため、モジュールの使用を除外しますObj(caml-list の Xavier Leroy http://article.gmane.org/gmane.comp.lang.caml.general/47389 )。

コンテキストに応じて、標準の OCaml ディストリビューションに同梱されているが標準ライブラリの一部ではない C ライブラリ ( StrUnix、 ...) を許容する場合と許容しない場合があります。

于 2016-01-28T20:55:39.893 に答える
5

「純粋な OCaml」は、「OCaml の純粋に機能的なサブセット」を意味するものではありません。OCaml の非機能的な側面は、OCaml が何であるかの本質的に重要な部分であるため (たとえば、Harper は無害な効果の価値について言及しています)、「純粋な OCaml」はそれを意味することはできません。

于 2016-01-28T22:17:55.117 に答える