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
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.
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
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
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
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
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
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
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
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
10 matches
Mail list logo