Re: Understanding the continuation monad's bind operator

2010-01-08 Thread Konrad Hinsen
On 8 Jan 2010, at 02:43, Steven E. Harris wrote: Can you recommend a book that covers aspects of monads like these? I'd like to learn more about the abstract concepts than their implementation in a particular language. I don't know about any books. There's a lot of monad material on the W

Re: Understanding the continuation monad's bind operator

2010-01-07 Thread Steven E. Harris
Konrad Hinsen writes: > When the monadic values are functions representing computations, > monadic composition yields a new function but doesn't execute > anything. When the monadic values represent results of computations, > then monadic composition implies execution of the computational steps.

Re: Understanding the continuation monad's bind operator

2010-01-07 Thread Steven E. Harris
Thank you, Konrad. Your explanation was perfect. -- Steven E. Harris -- 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 wit

Re: Understanding the continuation monad's bind operator

2010-01-07 Thread Konrad Hinsen
On 07.01.2010, at 02:23, Steven E. Harris wrote: That means that a monadic function has a signature like a -> m b RIght. Say that we're looking to use some "normal" functions with this monad. Those functions may have signatures like a -> b They clearly don't return the right kind of val

Re: Understanding the continuation monad's bind operator

2010-01-07 Thread Konrad Hinsen
On 07.01.2010, at 01:56, Steven E. Harris wrote: I'm interested in what you mean by "composite computation", because I think it's hinting at some concept for monads that I missed. If, as you say, executing the function immediately is not acceptable behavior, then I infer that the goal is to

Re: Understanding the continuation monad's bind operator

2010-01-06 Thread Steven E. Harris
I have a few more questions concerning how one interacts with a continuation monad. It's clear that a monadic function accepts some "base value" and returns a monadic value, in turn being a function accepting a single continuation argument. That means that a monadic function has a signature like

Re: Understanding the continuation monad's bind operator

2010-01-06 Thread Steven E. Harris
jim writes: > Don't know if you saw, but I did a whole tutorial on the continuation > monad. Your essay is how I got started with monads in Clojure. I've read it six times now (along with five other of your essays on the subject), but perhaps I missed the requirement pertaining to delaying evalu

Re: Understanding the continuation monad's bind operator

2010-01-06 Thread Steven E. Harris
Konrad Hinsen writes: > Exactly. The result of m-bind must be a continuation-accepting > function again. Yes, and invoking 'mv' yields such a function. > That's the role of the outer layer (fn [c] ...). That one adds /another/ layer, but the inner function returned by 'mv' has the same "sign

Re: Understanding the continuation monad's bind operator

2010-01-05 Thread Konrad Hinsen
On 05.01.2010, at 02:23, Steven E. Harris wrote: > , > | (fn m-bind-cont [mv f] > | (fn [c] > | (mv (fn [v] ((f v) c) > ` > > I'm curious why there's an extra delaying wrapper function there. The > outermost `fn' form taking the argument "c" as a continuation looks > like > it

Re: Understanding the continuation monad's bind operator

2010-01-04 Thread jim
Don't have time to go in depth on an explanation. But remember that m- bind must work with m-result according to the 3 monadic laws. This constrains what it can do. Don't know if you saw, but I did a whole tutorial on the continuation monad. It's at: http://intensivesystems.net/tutorials/cont_m.ht