That's it, that's exactly what I needed to complete this example. I'm pretty pumped because you guys have shown me a way to do it without macros and without manually managing a quoted tree structure.
If it's okay, could somebody explain the difference between what's happening here: user> (def my-func (list + 1 2)) #'user/my-func user> (my-func) ; Evaluation aborted. and here: user> (def my-func (list + 1 2)) #'user/my-func user> (eval my-func) 3 I don't really understand how: user>(my-func) is NOT eval on my-func in the REPL. My understanding is the first item in the list is treated as a function, with the rest of the list passed as arguments. Wouldn't the REPL just be calling eval internally on everything you type in? On Wed, Jul 8, 2009 at 7:22 PM, Richard Newman<holyg...@gmail.com> wrote: > >> That looks like what I'm after. When I run a test, however, it doesn't >> behave properly: > > You'll want to either eval the expression, or apply the first item in > the list to the rest: > > user=> (eval (list + 1 2)) > 3 > user=> (let [form (list + 1 2)] > (when (not (empty? form)) > (apply (first form) (rest form)))) > 3 > > > > > --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---