Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!zaphod.mps.ohio-state.edu!mips!pacbell.com!att!ucbvax!bloom-beacon!dont-send-mail-to-path-lines From: mkatz@garlic.stanford.EDU (Morris Katz) Newsgroups: comp.lang.scheme Subject: Fixing the order of evaluation. Minimizing the unexpected. Message-ID: <9104101634.AA24470@garlic.Stanford.EDU> Date: 10 Apr 91 16:34:54 GMT References: Sender: daemon@athena.mit.edu (Mr Background) Organization: The Internet Lines: 25 Date: 9 Apr 91 07:25:05 GMT From: Chris Dollin Organization: Hewlett-Packard Laboratories, Bristol, UK. J. A. Durieux says: ((lambda (a b) -X-) -A- -B-) = ((lambda (b a) -X-) -B- -A-). Or at least it should be. [1] We had a real good reason to give up refential transparency, and for me it would require an (almost) equally good reason to give up the above property (of which I don't know the name). [2] [1] But, in an imperative language, it *already* isn't; never mind the lambda's, the arguments have to be evaluated in *some* order, and different orders may may a difference. So [1] is a lost cause. Not true! If argument evaluation order is unspecified then only an incorrect program will file to meet property [1] -------------------- Morry Katz katz@cs.stanford.edu --------------------