Why is the syntactical array constructor [| ... |] evaluating
elements from right to left:
# let f i = (Printf.printf "%d\n" i; i);;
val
f : int -> int = <fun>
#
Array.init 3 f;;
0
1
2
-
: int array = [|0; 1; 2|]
#
[| f 0 ; f 1; f 2|];;
2
1
0
-
: int array = [|0; 1; 2|]
Thanks,
- Jakob