Evaluation is always separated between procedure calls though, so the undefined order only regards specifically the order in which the operator and arguments are evaluated, right?

(
E.g.:

For the code (A (B C D) (E F G)), let's call (B C D) X1 and (E F G) X2, here: While the evaluation order within the block B C D, and within the block E F G, and within the block A X1 X2, is undefined, the internal evaluation of X1 and X2 is never mixed so that you'd get an evaluation order B to F to D, right?

Any mix where A, X1, X2 are kept separate could happen thoug, e.g. A, C, B, D, F, E, G or F, E, G, D, B, C, A.
)

2017-11-14 10:03 GMT+08:00 Marc Feeley <feeley@iro.umontreal.ca>:
Left as an exercice to the reader…

Marc



> On Nov 13, 2017, at 10:37 AM, Adam <adam.mlmb@gmail.com> wrote:
>
> Wow.
>
> Can you give an actual code exampe where compiled (or interpreted) code not does left to right?
>
> I think all I observed in practice in the past was left to right.
>
> Adam
>
>
> 2017-11-13 21:45 GMT+08:00 Marc Feeley <feeley@iro.umontreal.ca>:
> Execution order is arbitrary.  The interpreter and compiler don’t use the same ordering.  The interpreter tends to be mostly left-to-right, but don’t count on it.
>
> Marc
>
>
>
> > On Nov 12, 2017, at 4:19 PM, Adam <adam.mlmb@gmail.com> wrote:
> >
> > Hi Marc!
> >
> > Does Gambit evaluate left-to-right order always or only generally?
> >
> > Thanks,
> > Adam
>
>