home *** CD-ROM | disk | FTP | other *** search
- Path: sparky!uunet!mcsun!corton!tls-cs!schiex
- From: schiex@cert.fr (Thomas Schiex)
- Newsgroups: comp.lang.functional
- Subject: Re: Low level question
- Message-ID: <SCHIEX.92Aug18143749@jupiter.cert.fr>
- Date: 18 Aug 92 14:39:07 GMT
- References: <1992Jul12.061122.8943@eng.umd.edu>
- <NICKH.92Jul14151920@VOILA.VENARI.CS.CMU.EDU>
- <1992Jul14.205627.25659@eng.umd.edu>
- <DELACOUR.92Jul14152041@waxwing.parc.xerox.com>
- Sender: news@tls-cs.cert.fr
- Organization: CERT, C.S. Dept., Toulouse, France
- Lines: 61
- In-reply-to: delacour@waxwing.parc.xerox.com's message of 14 Jul 92 13:20:41 GMT
-
-
- You are pushing the cork too far (form the french "pousser le bouchon trop
- loin) when you say "The push for lazy programming does not concern
- programming, but publishing papers in quite close circles..."
-
- Even if i won't claim that lazyness is the most interesting feature for a
- language, it IS in fact useful. You may find practical uses almost
- everywhere, much simplifying your programming. Sometimes increesing
- efficiency. See for example:
-
- Constraint satisfaction with delayed evaluation
- IJCAI 89. pp 875
-
- It is also useful when you have too handle explicitly huge data (a game tree
- for example) that only a part will be used (cutoffs). Instead of relying on
- fine programming, with incremental sons development, you may simply define
- the WHOLE tree, and it will be automagically developed when needed. It also
- allows one to "compute with unknow values". An unusual trick that is quite
- useful (i used it for the strictness computing in a lazy lang. compiler in
- fact).
-
- It also gives additionnal expressive power (the so-called letrec or rec
- features works Ok even if you define immediatly evaluated objects). You may
- define objects that may be left unused later (even if their computation is
- expensive..).
-
- All these GOOD thing have too be payed in terms of time (small overhead, so
- small it is negligible). But the main issue is DEBUGGING which is very
- difficult. Sequencing is completly disturbed and the poor human is lost when
- tracing ! (obvious relations with concurrent processing). However some
- papers gives interesting debugging issues for lazy languages (for Daisy, see
- "Lisp and symbolic computations", in the first numbers).
-
- As you say "the typical programmer doesn't use lazy languages", but there
- are programmers that use lazy languages, few obviously, as there were few
- C or Pascal language programmer some years ago (no flame please, this is not a
- prediction of whatever you may think, just an observed fact). Things have
- to mature. Let them some time !
-
- NB: You should remind yourself of some people, in the fiveties saying "the
- transistor has obviously interisting theretical physical features, but it
- will NEVER serve any pratical use...".
-
- --------------------------------------------------------------------------
- Schiex Thomas | | Tel: (+33).61.55.70.65
- C.E.R.T. / DERA | To iterate is human, | Fax: (+33).61.55.71.72
- 2, Av. E. Belin | To recurse, divine. |
- BP 4025 | (L. Peter Deutsch) | schiex@cert.fr
- 31055 Toulouse Cedex | | schiex@irit.fr
- --------------------------------------------------------------------------
-
-
-
- --
- --------------------------------------------------------------------------
- Schiex Thomas | | Tel: (+33).61.55.70.65
- C.E.R.T. / DERA | To iterate is human, | Fax: (+33).61.55.71.72
- 2, Av. E. Belin | To recurse, divine. |
- BP 4025 | (L. Peter Deutsch) | schiex@cert.fr
- 31055 Toulouse Cedex | | schiex@irit.fr
- --------------------------------------------------------------------------
-