Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!zaphod.mps.ohio-state.edu!wuarchive!rex!caesar!fs From: fs@caesar.cs.tulane.edu (Frank Silbermann) Newsgroups: comp.lang.functional Subject: Re: Applications for lazy functional languages Keywords: strict Message-ID: <6853@rex.cs.tulane.edu> Date: 1 Apr 91 02:26:37 GMT References: <4682@osc.COM> <8413@skye.cs.ed.ac.uk> Sender: news@rex.cs.tulane.edu Distribution: comp Organization: Computer Science Dept., Tulane Univ., New Orleans, LA Lines: 29 >In article <4682@osc.COM> jgk@osc.COM (Joe Keane) writes: >> conceptually at least, we only need lazy functions. >> Lambda calculus and combinators both work this way; >> they have no strict functions. In article <8413@skye.cs.ed.ac.uk> db@lfcs.ed.ac.uk (Dave Berry) writes: >There is no intrinsic order of evaluation in the lambda calculus. In discussing a language (e.g. lambda calculus), I think we must not confuse the absence of an evaluation-order specification with the belief that all evaluation orders are equally valid. A strict language would be one in which strict evaluation is no less effective than any other order. With this interpretation, lambda calculus would have to be viewed as nonstrict. By the way, does the _formal_ theory of typed lambda calculus accept constructor-based primitive functions defined via rewrite-rules? For example, in the lambda-notation of denotational semantics, one can _force_ any primitive function `f: A->B' to be strict simply by defining f(BOT_A) = BOT_B. One can even use this method to define a strict version of function application. -- Frank Silbermann fs@cs.tulane.edu Tulane University New Orleans, Louisiana USA -- Frank Silbermann fs@cs.tulane.edu Tulane University New Orleans, Louisiana USA