> Actually I stopped bothering long ago about
'understanding monads'.
I think that's a shame, because when I wrote the source
code myself to get from a pure functional approach (passing the
"object" from function to function as an extra argument) to a monadic
approach, it was a real eye opener. Many of the different FP techniques, like partial
application, reversed'
parameter order, lambas, pointfree notation etc were
required to do this, which might be one of the reasons it’s a bit difficult for
newbies to see how a monad is just pure FP in disguise. After cracking the code
myself, I had so much appreciation for the guys who invented this stuff, it’s really
the work of a genius, at least that's the way it felt to me. And then the math
approach to abstract the whole thing into a type class, so it can be used for many
other "single-flow" (or how should I call that?) computations,... so
nice. I can’t say that I can write a monad instance myself yet without peeking
in the book, but I think I would recognize the pattern if I see code that could
make use of monads (at least the simple cases).
Now I'm figuring out arrows, and this gives me a feeling
like... euh... well... it's even more abstract, it encapsulates any kind of
computation, also the ones then can be "split into multiple branches"
(okay, I should not talk about this, I don't really get arrows yet...)
Of course, I'm a kind of guy who likes to understand the
inner details before I'm really pleased... So for Haskell, I still have a long way
to go :)
But you seem to be much further ahead than I am when it
comes to *using* monads, so your approach is probably better. Just get used to
the damn things and accept them (ouch, that feels a lot like religion...)
Cheers,
Peter
-----Original Message-----
From: dav.vire@gmail.com [mailto:dav.vire@gmail.com] On Behalf Of david48
Sent: Monday, October 15, 2007 9:15 AM
To: bf3@telenet.be
Cc: jerzy.karczmarczuk@info.unicaen.fr; haskell-cafe@haskell.org
Subject: Re: [Haskell-cafe] do
On 10/14/07, Peter Verswyvelen <bf3@telenet.be>
wrote:
> If you want I can dig up my old source code where I
converted a random number
> generator from a purely functional approach to a
monadic approach, but I'm not
> sure reading it would help you, it's creating the
code yourself that will be useful I
> guess.
Actually I stopped bothering long ago about
'understanding monads'.
After reading many blog posts, wikis, tutorials, etc,
often multiple
times, I developped a fuzzy idea of what you can do using
monads, and
that's enough for me to use monads like IO, STM, State,
Parsec, etc.
without too much problems.
I use haskell to solve many little problems in my job and
I'm damned
sad that I can't use it for larger projects.
I feel I'm still a long way from identifying a situation
where I would
need to write my own monad, and be able to do it, but by
the time such
situation arises, I don't think it'd be too much a
problem.
That being said, I plead guilty of not provinding feeback
where I
found the doc lacking.
I have no excuse.