On 20.12.2008, at 22:50, jim wrote:

> I also think this would be a great addition to clojure-contrib.

Me too. But who decides what goes into clojure-contrib? Rich?

> Because of the way most monad tutorials are written, monads seem to be
> pretty hard to get your head around.  Also, many of the reasons for
> the standard monads in Haskell don't exist in impure functional
> languages like Clojure.  So there's less motivation to understand
> them.  But I found that once I understood them, they are a powerful
> addition to my conceptual toolbox.

I agree. I see monads as the functional equivalent to aspect-oriented  
programming: a way to implement separation of concerns.

I also think that some aspects of monads are clearer in Clojure than  
they are in Haskell. Haskell's way to implement monads as data types  
has some practical advantages, but it also obscures the algorithmic  
nature of monads a bit. Moreover, it makes some things impossible,  
for example executing a single piece of code under different monads  
(easy in Clojure by having the monad as a variable), which is quite  
handy sometimes, e.g. for debugging. I also prefer monad transformers  
implemented as functions to monad transformers implemented as pretty  
complicated abstract data types with boilerplate code to get data in  
and out. In the long run, we should have a monad tutorial for  
Clojure, rather then let everyone learn Haskell first.

Konrad.




--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To post to this group, send email to clojure@googlegroups.com
To unsubscribe from this group, send email to 
clojure+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/clojure?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to