1

Rascal は、機能的であると同時に必須でもあると感じています。課題をサポートします。しかし、それは純粋であるとも主張されています。だから、割り当てのような機能がシミュレートされていると思います。それでは、Rascal の命令型モデル、モナドによる Haskell 方式、または一意性による Clean 方式とは何でしょうか?

4

1 に答える 1

1

Rascal は、そのデータ インスタンスが不変であるという意味と、すべて (関数パラメーターの受け渡し、代入、Java メソッドの呼び出し) が値渡しであるという意味でのみ純粋です。エイリアシングはありえません (*)。

グローバル、またはスタックの場所をキャプチャする同様のクロージャーを使用しても、すべての割り当ては値によるものですが、実際の割り当てです。つまり、モナドも、一意性の型付けも、単純で直接的な副作用もありませんが、エイリアシングも突然変異もありません。

Rascal の Java コードへの副作用を「安全」にしているのは、データの送受信が常に不変値のシリアル化 (逆) を介して行われることです。intまたは付きのポインターloc:-)

(*) クロージャーを使用してエイリアシングの形式を作成できますが、そのようなことを行うには、最初にいくつかの高いフープをジャンプする必要があります。

于 2013-11-21T14:32:53.393 に答える