2017-05-10 12 views
6

OCamlでは、関数アプリケーションの評価順序が未定義です(別名非決定論)。関数アプリケーションの評価順序はSMLで決定的ですか?

標準MLでは、非決定論的か決定論的でもありますか?明確にする仕様セクションへの参照を提供できますか?


編集:後に来てあなたのそれらのために、私はまた、SMLのように、F#で順序を指定して、確定されていることを学んだ - さらに多くの狂気2構文にどれだけ近いかを検討しているのOCamlとは異なり。あなたがそれらの間をたくさん切り替えると簡単に忘れる。

答えて

8

はい、評価規則(Definitionの6.7節)は、SMLのすべての構成要素の評価順序を完全に指定しており、常にテキスト順です。アプリケーションの場合、まず関数式が評価され、次に引数(例えば、ルール102)が評価される。同様に、レコード(およびタプル)は左から右に評価されます(92/95ルール)。これは、例えば、 f(a,b)(c,d)gf(...)の結果であるためfabf(...)cdg(...)、で評価されます。

関連する問題