From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (from weis@localhost) by pauillac.inria.fr (8.7.6/8.7.3) id VAA14464 for caml-red; Tue, 10 Oct 2000 21:25:41 +0200 (MET DST) Received: from concorde.inria.fr (concorde.inria.fr [192.93.2.39]) by pauillac.inria.fr (8.7.6/8.7.3) with ESMTP id VAA14709 for ; Tue, 10 Oct 2000 21:19:33 +0200 (MET DST) Received: from cepheus.azstarnet.com (cepheus.azstarnet.com [169.197.56.195]) by concorde.inria.fr (8.10.0/8.10.0) with ESMTP id e9AJJWj00579 for ; Tue, 10 Oct 2000 21:19:32 +0200 (MET DST) Received: from dylan (dialup11ip114.tus.azstarnet.com [169.197.35.114]) by cepheus.azstarnet.com (8.9.3/8.9.3) with SMTP id MAA15321 for ; Tue, 10 Oct 2000 12:19:28 -0700 (MST) X-Sent-via: StarNet http://www.azstarnet.com/ Message-ID: <001801c032ef$88ed4ec0$210148bf@dylan> From: "David McClain" To: Subject: Re: Undefined evaluation order Date: Tue, 10 Oct 2000 12:23:11 -0700 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 4.72.3110.5 X-MimeOLE: Produced By Microsoft MimeOLE V4.72.3110.3 Sender: weis@pauillac.inria.fr I second this opinion overall... I cut my teeth with respect to this when writing C back about 20 years ago. Each individual statement in a program carries with it the (implicit) assumption of simultaneous evaluation, unless care is taken to indicate otherwise (e.g., Lisp (LET ...) vs (LET* ...) ). Hence depending on a particular order of evaluation is seemingly dangerous, not to mention confusing when switching between many different languages as I must do... (Lately, with a mix of OCaml, SmallTalk, Dylan, and Lisp I have even been getting confused about operator precedence!). I think it is probably wrong for too many assumptions to be made in the design and use of a language. Lisp is stellar in this regard, simply because only one assumption is made - first operand is a function all the rest are args. When one must switch between languages, it is horribly confusing to have to get back into the mindset of the crowd that fancies their particular language as the one and only... Just my 2c... - DM -----Original Message----- From: Thorsten Ohl To: caml-list@inria.fr Date: Tuesday, October 10, 2000 10:08 AM Subject: Re: Undefined evaluation order >Brian Rogoff writes: > >> For OCaml it appears that the perspective adopted is that the >> programmer must make the temporal dependencies explicit. [...] it is >> mentioned that this usually leads to clearer programs. I'm sure the >> bytecode compiler argument is valid, but not the code clarity one > >Maybe I have ben brainwashed by too much Fortran, but depending on >side effects in the evaluation of function arguments that change the >result according to the evaluation order is not good style, IMHO. >Explicit `let' bindings are clear and improve the likelihood that the >author will still be able to understand his/her code a few year later >significantly. > >I agree that leaving this important chunk of the semantics unspecified >is not nice, but closing the door on parallelism forever would be much >worse, IMHO. > >(Only half-joking) There should be an option in the compiler >randomizing evaluation order for debugging ... >-- >Thorsten Ohl, Physics Department, TU Darmstadt -- ohl@hep.tu-darmstadt.de >http://heplix.ikp.physik.tu-darmstadt.de/~ohl/ [<=== PGP public key here] >