Oh, the identity monad itself is completely useless. It's like an identity transform for a matrix. It's intended to do nothing.
Otherwise, the exchange of parameters appears to have been a typo. I'll fix that when I get home tomorrow. Sorry! -Dan On Fri, Apr 13, 2012 at 13:06, Jörg F. Wittenberger < [email protected]> wrote: > On Apr 13 2012, Daniel Leslie wrote: > > I have written a small egg to ease the usage of lazily-evaluated monads. >> > > Very welcome! > > But there's one thing I find confusing. > > You posting continues with this example identical to the one in > the "Basic Monads" section. > > > For example, after defining the identity monad: >> >> (define-monad >> <id> >> (lambda (a) a) >> (lambda (a f) (f a))) >> > > However the "Description" section introduces the bind function > with the "f" and "a" parameters exchanged: > > For instance, the identity monad is: >> >> 1. Bind: (lambda (f a) (f a)) >> > > So far I fail to see a reason. > > Short of other arguments I'd prefer the latter one as more > consistent. > > One more question: would it be feasible to support > multi-valued monads like this made up one: > > (define-monad > <complex-id> > (lambda (r i) (values r i)) > (lambda (f r i) (f r i))) > > best regards > > /Jörg > > ..... >
_______________________________________________ Chicken-users mailing list [email protected] https://lists.nongnu.org/mailman/listinfo/chicken-users
