On 21 Nov 2009, at 06:31, samppi wrote:
And no matter what I do, I can't fulfill that second axiom. Has anyone
created this type of monad before? It seems like it should be a common
pattern: exactly like (state-t maybe-m), only failures are vector
pairs too.
One problem I see in your
The original reason is that I need to be able to transfer certain
certain metadata such as memoization tables between failure results in
m-plus. I'm writing a PEG-type parser that hopefully can support left-
recursion without any conversion to right-recursive rules. I'm using
metadata because I
On 22 Nov 2009, at 22:06, samppi wrote:
Yes, I see. I'm going to guess that the parser-m that I give above has
no possible m-zero, so I think I'll have to rethink how I'm going to
approach this problem. I probably am going to just define failure in
another way. (The reason why I can't use nil
On 22 Nov 2009, at 22:10, John Harrop wrote:
Is there an explanation of monads out there that doesn't require the
reader to know Haskell to understand it? One that's generic to any
FP-capable language?
Nothing I know of; you need some syntax if only for the examples.
Moreover, there are
Konrad,
Glad to see you're still around doing monads in Clojure. :)
Jim
--
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
Thanks for the help.
After working it out, I just figured out that the reason why the
second axiom isn't fulfilled by the m-zero above is this part in m-
bind:
((product-fn product) new-state))
product-fn, which in the second axiom's case is (fn [x] m-zero), gets
Yes, I see. I'm going to guess that the parser-m that I give above has
no possible m-zero, so I think I'll have to rethink how I'm going to
approach this problem. I probably am going to just define failure in
another way. (The reason why I can't use nil is because I need to
store metadata on the
Is there an explanation of monads out there that doesn't require the reader
to know Haskell to understand it? One that's generic to any FP-capable
language?
--
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to
On Mon, Nov 23, 2009 at 2:40 AM, John Harrop jharrop...@gmail.com wrote:
Is there an explanation of monads out there that doesn't require the reader
to know Haskell to understand it? One that's generic to any FP-capable
language?
Most of them use the concrete syntax of *some* language. But
On Sun, Nov 22, 2009 at 4:25 PM, Martin DeMello martindeme...@gmail.comwrote:
On Mon, Nov 23, 2009 at 2:40 AM, John Harrop jharrop...@gmail.com wrote:
Is there an explanation of monads out there that doesn't require the
reader
to know Haskell to understand it? One that's generic to any
I wrote one specifically for monads in Clojure.
http://intensivesystems.net/tutorials/monads_101.html
There's also a second part.
Also, Konrad Hinson wrote one:
http://onclojure.com/2009/03/06/a-monad-tutorial-for-clojure-programmers-part-1
it's in 4 parts, I believe.
John Harrop wrote:
On
Samppi,
Here's a parser-m monad I did.
(defmonad parser-m
[m-result (fn [x]
(fn [strn]
(list x strn)))
m-bind (fn [parser func]
(fn [strn]
(let [result (parser strn)]
Yes, your monad was the first monad that I was talking about—in fact,
I followed your tutorial when I was learning about monads, and I used
your examples to create an entire parsing library. I believe that it's
essentially equivalent to (state-t maybe-m), except that you use list
pairs instead of
Glad you found that tutorial useful. I had to run this morning, so I
couldn't really reply. I'll try to read your post more closely
tomorrow and see if I can offer any useful insight.
Jim
--
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this
I'm writing a maybe/state monad using clojure.contrib.monads. I've
gotten by fine with using just (state-t maybe-m), but now I need
different behavior:
I need a monad that behaves precisely like (state-t maybe-m), except
that when a monadic value mv is called on a state s and fails, (mv s)
15 matches
Mail list logo