
2007/2/15, Dougal Stanton
Quoth Nick, nevermore,
According to one guy's analogy: the Real World is strict - in order to drink tea, you have to put the cattle on the fire, wait until water boils, brew tea and then drink. Not the cattle is put on the fire, water boils and the tea is brewed when you take the empty cup to start drinking. :-)
I think the word you meant there is "kettle", since "cattle" are what get turned into burgers ;-) Still, the idea of water-boil-tea-brew happening by demand would probably save electricity in our energy-conscious world. Don't boil a full kettle for a single cuppa!
An example of real world laziness, and where it pays off, is maybe the kanban system as used in manufactering: http://en.wikipedia.org/wiki/Kanban Not sure though if such so called real world examples actually add much to the discussion. Ultimately I think you need both lazy and strict evaluation; a reasonable default depends on the flavour of the particular language. Given Haskell, it seems lazy by default is the obvious choice (however I may feel that way simply because it _is_ that way :) )Strict just can't be the _only_ option, as it too often is. Kurt