Re: sequencing

From: Jean-Christophe Filliatre (Jean-Christophe.Filliatre@ens-lyon.fr)
Date: Tue Jun 03 1997 - 13:15:30 MET DST


Date: Tue, 3 Jun 1997 13:15:30 +0200 (MET DST)
Message-Id: <199706031115.NAA20854@anjou.ens-lyon.fr>
From: Jean-Christophe Filliatre <Jean-Christophe.Filliatre@ens-lyon.fr>
To: Jean.Luc.Paillet@lim.univ-mrs.fr
Subject: Re: sequencing

> Quelqu'un pourrait-il m'expliquer pourquoi le sequencement d'une fonction
> a` effet de bord, telle que "print_string" par exemple, semble inverse'
> quand elle est appliquée sur une liste au moyen d'un iterateur.

Ce comportement est du au fait que, lors d'une application, les
arguments sont évalués de droite à gauche, comme le montre l'exemple

        # (fun _ _ -> ()) (print_string "toto") (print_string "tata");;
        tatatoto- : unit = ()

Dans ton exemple, le comportement est du au fait que le deuxième
argument du cons (l'appel récursif) est évalué avant le premier (f
head).

Cependant, le manuel de référence indique, page 64, que : "The order
in which the expressions expr1,...,exprn are evaluated is not
specified." En conséquence, il vaut mieux expliciter l'ordre
d'évaluation en utilisant le séquencement avec ;.

-- 
Jean-Christophe FILLIATRE
  email: Jean-Christophe.Filliatre@ens-lyon.fr
  WWW  : http://www.ens-lyon.fr/~jcfillia

> ********************************************** > ££ English version ££ > > I don't understand why the sequencing of side effects seems to be inverted, > when using "map" , like for example in the following:

This behavior is due to the order of evaluation of the arguments in an application, which is from right to left, as illustrated by the following example :

# (fun _ _ -> ()) (print_string "toto") (print_string "tata");; tatatoto- : unit = ()

However, the reference manual indicates, page 64, that: "The order in which the expressions expr1,...,exprn are evaluated is not specified." Consequently, it is better to explicitly specify the order of evaluation using a sequence (;).

-- Jean-Christophe FILLIATRE email: Jean-Christophe.Filliatre@ens-lyon.fr WWW : http://www.ens-lyon.fr/~jcfillia



This archive was generated by hypermail 2b29 : Sun Jan 02 2000 - 11:58:11 MET