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
-~----------~----~----~----~------~----~------~--~---

Reply via email to