Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!usc!cs.utexas.edu!uunet!vtserf!creatures!csgrad!lavinus From: lavinus@csgrad.cs.vt.edu Newsgroups: comp.lang.scheme Subject: Re: Fixing the order of evaluation. Minimizing the unexpected. Message-ID: <1081@creatures.cs.vt.edu> Date: 7 Apr 91 15:03:27 GMT References: <9104041629.AA19876@schizo> Sender: usenet@creatures.cs.vt.edu Reply-To: lavinus@csgrad.cs.vt.edu () Organization: Virginia Tech Computer Science, Blacksburg, VA Lines: 24 Hello! The idea behind not having a fixed order of evaluation is largely on principle. Scheme, like Lisp, has an applicative, i.e. functional, language as its core. In general, it is encouraged to do Scheme (and Lisp) programming in such a way as to maximize this applicative style, that is, to minimize side-effects. If you're concerned about order of application, then the only reason must be because one function depends on the side effects of another (with the exception of things like "and", where you might not want one argument to be evaluated if a previous one returns T). So, unspecified order of evaluation encourages you to program in a non- side-effecting way, by saying that you can't depend on any particular order of evaluation. In the big picture, this gains you things like easy parallelization. Anyway, I prefer things that way, but of course, I approach Scheme from the point of view of an applicative language afficionado, and of course, I'm not trying to learn it anew, either :-). Joe -- _________________________________ \ ___________________________________ Joseph W. Lavinus, Virginia Tech \ email: lavinus@csgrad.cs.vt.edu 1204-A University Terrace /\ phone: (703) 552-0241 Blacksburg, VA 24060 / \ (703) 231-5853