Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!zaphod.mps.ohio-state.edu!uakari.primate.wisc.edu!dali.cs.montana.edu!milton!uw-beaver!rice!news!gateley From: gateley@rice.edu (John Gateley) Newsgroups: comp.lang.scheme Subject: Re: Logic does not apply Message-ID: Date: 3 May 91 16:58:53 GMT References: <9105031031.aa16176@mc.lcs.mit.edu> Sender: news@rice.edu (News) Organization: Rice University Lines: 26 In-Reply-To: STCS8004%IRUCCVAX.UCC.IE@mitvma.mit.EDU's message of 3 May 91 15:18:00 GMT In article <9105031031.aa16176@mc.lcs.mit.edu> Gordon Oulsnam writes: Scheme's derived expressions, special forms, control structures and so on are, in lambda calculus terms, functions evaluated in (something like) normal order. Since the necessity for these is acknowledged, *WHY NOT ALLOW THE USER* to specify normal evaluation when required? Just out of curiosity, how would you compile the following function: (define foo (lambda (f x y z) (f z y x))) Consider (foo + 1 2 3) and (foo if else then pred)? The arguments to ANY application must be assumed to be passed in normal order unless you can prove otherwise. Is this what you really want? I know - I know - the efficiency of an implementation shouldn't matter during language design, but the implementor in me feels otherwise. John gateley@rice.edu -- "I've thought the thoughts of little children and the thoughts of men I've thought the thoughts of stupid people who have never been so much in love as they should be and got confused too easily to fall in love again." The Residents and Renaldo and the Loaf