let a = ref 0;; let f x y = ();; f (a:=1) (a:=2);; a;;qui crée une référence (une cellule de valeur modifiable par effet de bord), puis une fonction bidon
f qui ignore ses deux
arguments. Ensuite on calcule f appliquée à deux
arguments qui affectent 1, resp. 2 à a. Le langage
étant séquentiel, la valeur finale de a permettra de
savoir lequel des arguments a été évalué en dernier. En
OCaml, la réponse est 1, montrant que c'est l'argument de gauche
qui a été évalué en dernier.
|
|
|

|
|
if
ne sont jamais utilisés plus d'une fois, et en fait l'un des deux
ne sera pas utilisé, il est donc plus intéressant d'utiliser une
stratégie externe dans ce cas, ce qui économise l'évaluation
de l'argument qui ne sera jamais évalué.
|
) On va démontrer (*) par étapes. Le
point important est le numéro 4 ci-dessous, les précédents
sont des points techniques:
|