Path: utzoo!attcan!uunet!mcsun!ukc!edcastle!aipdc From: aipdc@castle.ed.ac.uk (Paul D. Crowley) Newsgroups: comp.lang.functional Subject: Re: Laziness and Back-to-front Lists Message-ID: <4289@castle.ed.ac.uk> Date: 28 May 90 21:28:32 GMT References: <14531@dime.cs.umass.edu> <2535@skye.ed.ac.uk> <8691@cs.utexas.edu> <4170@castle.ed.ac.uk> <3738@moondance.cs.uq.oz.au> Reply-To: aipdc@castle.ed.ac.uk (Paul D. Crowley) Organization: Edinburgh University Computing Service Lines: 24 WARNING: Uninformed opinions ahead! I was under the impression that in a truly "pure" functional language the problem doesn't arise because nothing has more than one argument. Things that look as if they should have more than one argument are dealt with lambda-calculus style: 2+3: ((plus 2) 3) (plus 2) means plus applied to two, and equals a function which adds two to its argument. so ((plus 2) 3) = (plus2 3) = 5 Under these circumstances you _expect_ order of arguments to be significant, so it doesn't surprise you that you get different results if you change it. I'm trying to imagine a language which evaluated expressions breadth-first. Maybe it's already been done? Obviously your "done-so-far" structure would be _much_ more complicated than a stack. -- \/ o\ Paul Crowley aipdc@uk.ac.ed.castle /\__/ "Trust me, I know what I'm doing" - Sledge Hammer