home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #18 / NN_1992_18.iso / spool / comp / lang / function / 1009 < prev    next >
Encoding:
Internet Message Format  |  1992-08-18  |  3.6 KB

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