[Haskell-cafe] Abuse of the monad [was: monadic logo]
wagner.andrew at gmail.com
Thu Mar 12 11:29:01 EDT 2009
Conal,Do you think imperative Haskell can be a sort of "gateway drug" to
On Thu, Mar 12, 2009 at 11:25 AM, Conal Elliott <conal at conal.net> wrote:
> Thank you Bob! I'll throw in another 2 cents:
> Yes, *one* aspect of Haskell is that it's a power tool for imperative
> programming -- a clever way to keep plugging away at the old sequential von
> Neumann paradigm. C++++.
> I'd rather we strongly encourage Haskell-newbies toward shifting out of the
> imperative paradigm to thinking and programming *functionally*. It's a big
> shift, to make, and imperative-Haskell is a relatively easy substitute.
> - Conal
> On Thu, Mar 12, 2009 at 7:28 AM, Thomas Davie <tom.davie at gmail.com> wrote:
>> On 12 Mar 2009, at 15:16, Andrew Wagner wrote:
>> Can you expand on this a bit? I'm curious why you think this.
>> For two reasons:
>> Firstly, I often find that people use the Monadic interface when one of
>> the less powerful ones is both powerful enough and more convenient, parsec
>> is a wonderful example of this. When the applicative instance is used
>> instead of the monadic one, programs rapidly become more readable, because
>> they stop describing the order in which things should be parsed, and start
>> describing the grammar of the language being parsed instead.
>> Secondly, It seems relatively common now for beginners to be told about
>> the IO monad, and start writing imperative code in it, and thinking that
>> this is what Haskell programming is. I have no problem with people writing
>> imperative code in Haskell, it's an excellent imperative language. However,
>> beginners seeing this, and picking it up is usually counter productive –
>> they never learn how to write things in a functional way, and miss out on
>> most of the benefits of doing so.
>> Hope that clarifies what I meant :)
>> Haskell-Cafe mailing list
>> Haskell-Cafe at haskell.org
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Haskell-Cafe