Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!uunet!seismo!mcvax!unido!uklirb!rehbold From: rehbold@uklirb.UUCP Newsgroups: comp.lang.misc Subject: Re: Lazy evaluation (was "H.O.Functions - (nf) Message-ID: <26400003@uklirb.UUCP> Date: Mon, 13-Jul-87 09:49:00 EDT Article-I.D.: uklirb.26400003 Posted: Mon Jul 13 09:49:00 1987 Date-Received: Wed, 15-Jul-87 04:15:39 EDT References: <1437@tekchips.UUCP> Lines: 17 Nf-ID: #R:tekchips:-143700:uklirb:26400003:000:968 Nf-From: uklirb!rehbold Jul 13 14:49:00 1987 I too think that the software engineering aspect is an important feature of lazy evaluation. Since lazy functions always produce only as much data as some other function really uses the generating function can be written completely independent from the using one. In imperative languages, all data generation and using has to be done in the *same* procedure; otherwise no coordination would be possible. Even if the stream of data to be generated is not infinite, no one would like the idea of first generating a lot of data and then using it, perhaps only needing some of the data because the solution was found quite early. It's this separation between generating and consuming functions that enables the programmer to write clean, modular and easy to understand programs without having to think about coordination problems, because these don't appear with lazy evaluation. Robert Rehbold University of Kaiserslautern, FRG UUCP: ..!mcvax!unido!uklirb!rehbold