Re: [Haskell-cafe] A Reader Monad Tutorial

2009-06-28 Thread Lee Duhem
On Sun, Jun 28, 2009 at 12:41 AM, Henry Laxennadine.and.he...@pobox.com wrote:
 Dear Group,

 If any of you are struggling with understanding monads, I've tried to put
 together a pretty through explanation of what is behind the Reader monad.  If
 you're interested, have a look at:

 http://www.maztravel.com/haskell/readerMonad.html


Nice post.

I didn't find how to add comments on your blog, so I post them here:

Areas of Confusion

  1. What is the relationship between the Reader on the left hand side of the 
 equals sign in the newtype definition and the Reader on the right hand side?
   2. Why is there a Record field on the right hand side?
   3. What is that r - a doing there?

1) Reader on the left hand side be called a type constructor, Reader
on the right hand side be called a data constructor,
in Haskell 98 Report. You call them type definition and instance
constructor, respectively, I'm not sure it's a good idea, or
it is right.

bug in the explanation:
what you use to make something and instance of a Reader (left hand side)
- what you use to make something an instance of a Reader (left hand side)

2) runReader be called a selector function in Haskell 98 Report.

3) (-) is a type constructor, so r - a is  a function type.

I used found 'instance Monad ((-) r)' hard to understand, but by
follow the hit given by Brent Yorgey, i.e. the data constructor for
type constructor (-) is called lambda abstraction, I found I can
understand them by type inference. I have written a post about how I
figure
it out, maybe you want take a look:
http://leeduhem.wordpress.com/2009/06/07/understanding-monad-instance-by-type-inference/

bug in the explanation after  (Reader f1) = f2  = Reader $ \e -
runReader (Reader b) e:
Reader b is a function that takes and e and returns a c,
- Reader b is a function that takes an e and returns a c,

lee
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


[Haskell-cafe] A Reader Monad Tutorial

2009-06-27 Thread Henry Laxen
Dear Group,

If any of you are struggling with understanding monads, I've tried to put
together a pretty through explanation of what is behind the Reader monad.  If
you're interested, have a look at:

http://www.maztravel.com/haskell/readerMonad.html

Enjoy.
Henry Laxen


___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe