Dear Bill, It's not primarily a matter of efficiency, but rather of expressiveness. In a lazy language one can define an infinite list, pass it around as a value, and access particular elements of it "on demand". This demand-driven computation can be conceptually much cleaner than trying to carefully plan, in advance, which values should be computed in what order. See, for example: http://www.haskell.org/haskellwiki/Performance/Laziness http://lua-users.org/wiki/HammingNumbersVariant Best, Michael On 21 Mar 2009, at 16:06, Bill Lawvere wrote:
Thanks for the several interesting replies. I think I am learning what "lazy" means, but there seems to be embedded in it a presupposition that the order in which new expressions are introduced in a computation is something that one does not carefully plan. It still seems to me to be possible that the developing languages are partly the legacy of an epoch when computational power was qualitatively less than now.
I was especially heartened to see the lack of support for St. John's position "in the beginning was the word", especially in view of the recent attempts by physicists to revive that idealist position. Many of us have long instinctively believed that language should fit concepts and concepts should fit reality.
Bill
************************************************************ F. William Lawvere, Professor emeritus Mathematics Department, State University of New York 244 Mathematics Building, Buffalo, N.Y. 14260-2900 USA Tel. 716-645-6284 HOMEPAGE: http://www.acsu.buffalo.edu/~wlawvere ************************************************************