2013-04-20 11 views

答えて

9

マップの機能の適用順序を保証することができると確信しています。 OCamlでの単純な式の評価の順序は規定されていないので、がなければ、リストの要素に対するfのアプリケーションの順序は不定になります。 OCamlは純粋な言語ではないので、実際に注文を指定したい(fが最初にリストの先頭で呼び出されるなど、再帰的に呼び出されます)。

+1

確かに、試したOCamlのすべてのバージョン(最大4.00.1)は次のような動作を示しました: 'let rec map f = function [] - > [] |' x :: xs - > f x :: map f xs ;; 'を呼び出し、' map print_string ["a"; "b"; "c"] ;; 'これは、リスト要素を右から左へ出力します。 – chris

+0

List.mapでここで順序を指定する必要があるのはなぜですか?私は 'f a'は前後で評価されていると思います。 –

関連する問題