Konrad,
As long as your breaking things in monads, what would you think of
changing m-seq to this.
(defmonadfn m-seq
"'Executes' the monadic values in ms and returns a sequence of the
basic values contained in them."
[& ms]
(reduce (fn [q p]
(m-bind p (fn [x]
(m-bind q (fn [y]
(m-result (cons x y)))) )))
(m-result '())
(reverse ms)))
so that it doesn't accept a list of monadic values but instead lets
you call it with any number of mv's.
Instead of:
(m-seq [mv1 mv2 mv3])
you would write
(m-seq mv1 mv2 mv3)
That would make it be the same as the implementations of m-plus you've
already done.
Thanks
On Feb 19, 1:45 am, Konrad Hinsen <[email protected]> wrote:
> On 18.02.2009, at 22:40, jim wrote:
>
> > Here's an updated state-m monad transformer. I dropped my CA in the
> > mail today. I figure if I post a snippet of code to the list, it's
> > public domain, so do with it as you wish. Or wait till Rich gets my
> > CA.
>
> Thanks! It's in my working copy of themonadslibrary module
> already, and I will check it in when I see your name on the
> contributors' list. I'll be absent for a few days anyway, so it
> hardly makes a difference.
>
> Konrad.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Clojure" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
-~----------~----~----~----~------~----~------~--~---