Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!sun-barr!olivea!uunet!mcsun!ukc!edcastle!aiai!jeff From: jeff@aiai.ed.ac.uk (Jeff Dalton) Newsgroups: comp.lang.lisp Subject: Re: weird common lisp feature Keywords: read, read-line Message-ID: <4237@skye.ed.ac.uk> Date: 26 Feb 91 12:12:35 GMT References: <12413@helios.TAMU.EDU> <1991Feb21.104336.26012@Think.COM> <18935@brahms.udel.edu> <964@creatures.cs.vt.edu> Reply-To: jeff@aiai.UUCP (Jeff Dalton) Organization: AIAI, University of Edinburgh, Scotland Lines: 17 In article <964@creatures.cs.vt.edu> lavinus@csgrad.cs.vt.edu () writes: >Everyone seems to be missing a basic point of Lisp philosophy: If you do >something like (foo a) (foo2 b), you should not count on that being evaluated >left-to-right or right-to-left. Generally, it is good programming practice >(in general, but especially in Lisp) not to make any assumptions about order >of evaluation unless the *language* (not the compiler) guarantees some >particular order (the only example I can think of offhand is C - it guarantees >order of evaluation of most everything). It is of course a good point that one should never rely on order that is not guaranteed by the language. However, some Lisps, such as Common Lisp, do guarantee the order in most cases. Common Lisp guarantees more than C. The guarantee in C is fairly complex and does not include the order of evaluation of parameters to a procedure.