On 02/05/11 17:54, Ketil Malde wrote: > I'm following Harper's blog, Existential Type¹, which I find to be an > enjoyable and entertainingly written tirade about the advantages of > teaching functional programming - specifically ML - to students. Of > course, he tends to be critical of Haskell, but it's nice to get some > thought provoking opinion from somebody who knows a bit about the > business. > > Recently, he had a piece on monads, and how to do them in ML, and one > statement puzzled me: > > "There is a particular reason why monads had to arise in Haskell, > though, which is to defeat the scourge of laziness." > > My own view is/was that monads were so successful in Haskell since it > allowed writing flexible programs with imperative features, without > sacrificing referential transparency. Although people are quick (and > rightly so) to point out that this flexibility goes way beyond IO, I > think IO was in many ways the killer application for monads. Before IO, > we had very limited functionality (like 'interact' taking a 'String -> > String' function and converting it into an exectuable program) to build > real programs from. > > Laziness does require referential transparency (or at least, it is > easier to get away with the lack of RT in a strict language), so I can > see that he is indirectly correct, but RT is a goal in itself. Thus, I > wonder if there are any other rationale for a statement like that? > > -k > > ¹ http://existentialtype.wordpress.com/ Interesting how I have been authoring and subsequently using monads in scala for several years and it is strictness that gets in the way more than anything.
http://github.com/scalaz/scalaz/ I have been teaching functional programming for quite a while, both in universities and outside of academia, and I am of the opinion that Haskell's suitability in first place has no close second place. I wonder why I am wrong, but this post (and previous) is hardly persuasive. -- Tony Morris http://tmorris.net/ _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe