Path: utzoo!attcan!uunet!samsung!usc!chaph.usc.edu!usc.edu!news From: news@usc.edu Newsgroups: comp.lang.functional Subject: Re: Purity and Laziness Message-ID: <9956@chaph.usc.edu> Date: 30 May 90 09:22:09 GMT References: <1535@sys.uea.ac.uk> <4170@castle.ed.ac.uk> <14531@dime.cs.umass.edu> <2535@skye.ed.ac.uk> <8691@cs.utexas.edu> <1990May25.024023.10616@comp.vuw.ac.nz> <1990May28.020325.18011@comp.vuw.ac.nz> Sender: news@chaph.usc.edu Organization: University of Southern California, Los Angeles, CA Lines: 34 In-reply-to: brian@comp.vuw.ac.nz's message of 28 May 90 02:03:25 GMT In article <1990May28.020325.18011@comp.vuw.ac.nz> brian@comp.vuw.ac.nz (Brian Boutel) writes: It would be highly desirable for Miranda and Haskell to be sufficiently lazy to guarantee that they would never loop/die/bottom while matching equations if there is just one equation which matches the actual arguments. Unfortunately, examples like . . . The only ways to avoid this are a) to outlaw programs like the example, which seem to be otherwise reasonable, or b) to go to parallel evaluation, which is expensive to simulate on a sequential machine. So, if the goal is to define a useful language for real computation, and to have lazy evaluation, it seems that some compromise is necessary. um... I may be way off base here, but I seem to recall some discussion of this at a recent APL conference (don't remember the ACM SIGAPL volume, but it was the one in New York). Essentially, they were using the parallel boolean functions of the language... there is a class of problems that serial unification does not handle correctly.. this parallel algorithm dependended on all information being available up front (self referent problems, such as paradoxes could not be represented). A big question was whether there were useful self-referent problems. The answer to this isn't clear. Sorry I don't remember the specific reference.. I'll try to find it and post it. raulmill@usc.edu