You know, I think you're right. I would refer you to part 2 of
Konrad's monad tutorial, but the link is broken. Check google's cache,
if you want to read an explanation immediately.

I'll have to go change that. Thanks for pointing it out and sorry for
any confusion.

Jim

Steven E. Harris wrote:
> Konrad Hinsen <konrad.hin...@fastmail.net> writes:
>
> > For a function of a single argument, m-lift and m-fmap are equivalent.
>
> In Jim Duey's essay Higher Level Monads¹, he writes the following on the
> lift operator:
>
> ,----[ m-lift ]
> | If you have a function that you would like to turn into a monadic
> | function, that is a function that can be passed to m-bind, you use
> | m-lift.
> |
> | m-lift takes two parameters, a function to lift and the number of
> | arguments that function accepts. The argument count is the first
> | parameter and the function is second. The return value is a function
> | that can be passed to m-bind.
> `----
>
> Isn't it the case, though, that a lifted function /can't/ be passed to
> bind, because it's not a monadic function? A lifted function takes
> monadic values as input, rather than a basic value.
>
> Is there some operator that converts a "normal" function
>
>   a -> b
>
> to a monadic function
>
>   a -> m b
>
> such that one could adapt a "normal" function for use in and among some
> other monadic functions (such as with m-chain)? I'm not sure such a
> translation is possible for all monads.
>
> I considered something like this
>
> ,----
> | (defn as-monadic-fn [f]
> |   (fn [v]
> |     (m-result (f v))))
> `----
>
> but it looks too simple.
>
>
> Footnotes:
> ¹ http://intensivesystems.net/tutorials/monads_201.html
>
> --
> 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 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