I finally found the time to watch the video recording of Rich's
keynote at Clojure/conj. Lots of interesting stuff, as usual...

When he started talking about transients and pods, I saw the term
"state monad" flashing in the background. I suppose most people don't
see, which is why I am writing this ;-)

A pod is pretty much the same as a call of a state-monad command.
Different pod policies translate to different variants of the m-bind
function of the state monad. The transient is the state that is
threaded through the sequence of commands. The state monad commands
correspond to Rich's procs.

Haskell uses variants of the state monad in much the same way as Rich
uses pods: to make sure that mutable state is handled in a controlled
way that ensures referential transparency for the outside world.

If pods and transients make it into Clojure, that would be the third
monad to be implemented in the core, after the identity monad (let)
and the sequence monad (for). Which one is next?

One advantage that would be obtained by using generic monad mechanisms
instead of individually designed special cases for each monad is
combinators for proce inside pods. There are probably many others.

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
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

Reply via email to