I ended up using (list ~@attrs) which is very similar to what you're suggesting...:)

JIm

On 05/09/13 20:22, Dave Ray wrote:
~(vec attrs), perhaps?


On Thu, Sep 5, 2013 at 12:20 PM, Jim - FooBar(); <jimpil1...@gmail.com <mailto:jimpil1...@gmail.com>> wrote:

    HI all,

    I've gotten myself into a weird situation...

    I'm defining a def-like macro and I want to use
    'name-with-attributes'. Consider the following skeleton:


    (defmacro defX [name & args]
     (let [[name attrs] (name-with-attributes name args)]
    `(let [cs-coll# ~attrs]
       (assert (every? component? cs-coll#) "Can only accept IComponents")
       (def ~name (Workflow. cs-coll# {:description (-> ~name meta
    :doc)} nil)))

    now consider that I am calling this like so:

    (defworkflow my-stem-pipe "my own basic stemming pipe" my-ssplit
    my-tokenizer porter-stemmer)

    where the last three symbols refer to records which implement IFn...

    doing "~attrs" tries to invoke the list as a function-call because
    the first symbol happens to be a function but I just want the list
    of records (eval'd symbols) so the assertion can proceed...


    any ideas?

    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
    <mailto: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
    <mailto: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 unsubscribe from this group and stop receiving emails from it,
    send an email to clojure+unsubscr...@googlegroups.com
    <mailto:clojure%2bunsubscr...@googlegroups.com>.
    For more options, visit https://groups.google.com/groups/opt_out.


--
--
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
---
You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

--
--
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
--- You received this message because you are subscribed to the Google Groups "Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to