Version française
Home     About     Download     Resources     Contact us    
Browse thread
Parameter evaluation order
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: skaller <skaller@u...>
Subject: Re: [Caml-list] Re: Parameter evaluation order
On Fri, 2005-08-26 at 14:09 +0200, Christophe Raffalli wrote:

> - why should the evaluation order be specified: this is needed if you 
> want to formally reason about programs ... 

Indeterminate order is just fine for reasoning: there is no need
for a system to be fully deterministic to reason about it,
you just end up with sets of possible results instead of 
a unique one.

You can assume determinism and proceed, noting where such
assumptions matter and reporting this as a coding 'bug'
to the programmer. Or, you can make deductions based
on the assumption the programmer knew what they were
doing.

Considering this case:

[print_endline "1"; print_endline "2"];;

it is NOT clear immediately the non-determinism matters:
certainly there are two possible results, but who said
that one is not doing:

ocaml < funny_code | sort

This issue arose on the Alioth Shootout with floating point
tests where various codes generated nice ray traced images
from Jon Harrops test .. but the actual numbers were slightly
different .. what matters is how the human eye sees the
output image, determinism was only required for an artificial
reason.

-- 
John Skaller <skaller at users dot sourceforge dot net>