> If you're going to talk about "category theory concepts", then that's the 
> constraint you have to operate under. "monad" is constituted by the laws, 
> the laws involve operations with a certain type, and that's just it. It's 
> not a matter of being in Haskell or not, it's a matter of accurately 
> implementing the concepts you claim to be implementing.
>

I do not want to be a nitpick, but category theory does not define monads 
(and functors and everything else) through types, but through categories. 
Categories themselves are not defined through types, but through
- objects
- arrows
- source and target assignments between arrows and objects
- assignment id from objects to arrows
- partial composition of arrows
- restricting axioms of associativity and identity

So, not only that types are not necessary for talking about monads, even 
functions are not necessary, let alone the laws that are defined strictly 
through types and/or functions (which I suppose is a special case). But, as 
I said, neither it is terribly important for now, neither I am prepared (or 
willing) to go that deep into CT, which, not being a matematician, I do not 
have a desire to dedicate my life to, so I would stay away from this 
digression from now on :)

I agree that Haskell's way is the most advanced and formally right 
impementation available today, but I do not agree with your "and that's 
just it". I gave an example (and there are more) where in Clojure it's not 
just it, and regarding the list monad, I do not agree with you. The vector, 
list, lazy-seq etc, contexts are not the same, although they are similar, 
and in a lot of cases in Clojure programming it is very important to be 
certain whether you are using a vector, a list or a lazy seq. Treating 
everything as a list monad is enough in some cases, and not enough in 
others, which are common.

-- 
-- 
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
Note that posts from new members are moderated - please be patient with your 
first post.
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
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to