On Fri, Jan 7, 2011 at 8:52 PM, Brian Hurt <bhurt@spnz.org> wrote:


On Fri, 7 Jan 2011, Holger Weiß wrote:

Simon Peyton-Jones argues like this:

| Because Haskell is lazy it meant that we were much more consistent about
| keeping the language pure.  You could have a pure, strict, call by value
| language, but no one has managed to do that because the moment you have
| a strict call by value language, the temptation to add impurities (side
| effects) is overwhelming.  So "laziness kept us pure" is the slogan!

[ http://www.techworld.com.au/article/261007/a-z_programming_languages_haskell/?pp=7 ]


Unless there is some other driver to keep things pure even while being strict.  And I would argue there is- concurrency.  Concurrency has a lot of similarities with laziness, in that the ordering of computations can be (and often is) undefined, with all the fun that entails.  Haskell is really good at multithreaded because it has already "paid the price" of dealing with asynchronous computations.

Seconded. And probably more advanced compilers could make better decisions at optimizing parallel execution.

Best,

--
Eray Ozkural, PhD candidate.  Comp. Sci. Dept., Bilkent University, Ankara
http://groups.yahoo.com/group/ai-philosophy
http://myspace.com/arizanesil http://myspace.com/malfunct