Konrad,
I got your code to work by doing the following:
Replaced with-monad with:
(defmacro with-monad
[name & exprs]
(let [bind-sym 'm-bind
result-sym 'm-result
zero-sym 'm-zero
plus-sym 'm-plus]
`(let [~bind-sym (:m-bind ~name)
~result-sym (:m-result ~name)
~zero-sym (:m-zero ~name)
~plus-sym (:m-plus ~name)]
(do ~...@exprs))))
And in defmonadfn changed
(list ~fn-name '~'m-bind '~'m-result '~'m-zero '~'m-plus ~...@args))
to
(list '~fn-name '~'m-bind '~'m-result '~'m-zero '~'m-plus ~...@args))
I'll probably have some more comments after I dig into the code.
Jim
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---