As Benjamin said, proxy does not support variable arg list with &, multiple
arity is
used in the following way:

(method-name
  ([arg0] ...)
  ([arg0 arg1] ...))

Jonathan

On Sun, Jun 19, 2011 at 10:58 AM, Benjamin Teuber
<bsteu...@googlemail.com>wrote:

> Some remarks:
>
> > (defmacro make-msg-ewrapper [method-names]
> maybe use [& method-names] so people can write (make-msg-wrapper a-
> method-name another-method-name)
>
> >   `(proxy [EWrapper] []
> >      ~@(map
> >         (fn [method-name]
> >           (let [args (gensym "args")]
> this line seems completely useless - you already use auto-gensym with
> args# (which will be replaced by sth. like args-1), and the variable
> args is actually never used
>
> >            `(~(symbol method-name) [& args#]
> method-name is already a symbol if your macro is called like above, so
> replace it by ~method-name.
> Is it allowed to implement all methods using a variable arg list?
> Seems to me you need to match the exact argument count, which you'd
> need to have as macro input or find out by reflection - but I'm not
> sure about this...
>
> >              (println ~method-name ":"
> >                       (. EWrapperMsgGenerator ~(symbol method-name))
> > ~@args#))))
> I think you didn't understand the #-Notation - it's not meant to be
> used together with unquote. Just args# should work and eval the args
> at runtime as you wanted.
>
> >         method-names)))
>
> Hope that helps a bit,
> Benjamin
>
> --
> 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 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