Hi Konrad, nicolas and Ken, Thanks for help. I am sure I will need more help when I try to walk through the rest of the examples.
But the idea of monads is really neat..:).. Sunil. On Tue, Nov 2, 2010 at 7:19 PM, Ken Wesson <kwess...@gmail.com> wrote: > On Tue, Nov 2, 2010 at 8:55 AM, Konrad Hinsen > <konrad.hin...@fastmail.net>wrote: > >> On 02.11.2010, at 13:34, Ken Wesson wrote: >> >> > This wouldn't work?: >> > >> > (with-monad sequence-m >> > (defn ntuples [n xs] >> > (apply (m-lift n list) (replicate n xs)))) >> >> No. >> >> > (If m-lift is a macro that requires the arity arg to be known at >> macroexpansion time: >> > >> > (with-monad sequence-m >> > (defn ntuples [n xs] >> > (apply (eval `(m-lift ~n list)) (replicate n xs)))) >> > >> > instead. Icky, mind you.) >> >> That should work. But once you are at that level of Lisp proficiency, you >> should also have heard the "eval is evil" lesson a few times ;-) > > > Yeah, I wouldn't actually use it for something like that in production > code. In this case I'd use m-seq. In fact the only time I've used eval in > production code, thus far, was in a system that had to generate new > functions on the fly based on data only available at runtime, and for > efficiency reasons those needed to become bytecode and potentially subject > to JIT compilation. So there was a compiler function that took some data, > constructed (fn ...) forms and eval'd them, and returned the resulting > function objects to its caller. > > -- > 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<clojure%2bunsubscr...@googlegroups.com> > For more options, visit this group at > http://groups.google.com/group/clojure?hl=en > -- 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