I see; then that of course would be the reason. Thanks for the answer. On Nov 23, 12:24 pm, Rich Hickey <richhic...@gmail.com> wrote: > On Nov 23, 11:36 am, samppi <rbysam...@gmail.com> wrote: > > > > > > > Variable-length arguments in protocols seem to be supported, but > > there's just a weird, stateful behavior. Look what happens when you > > call foo first with one argument twice (it fails both times), then two > > arguments (it succeeds), then one argument again (it succeeds now > > too!). Is this a Clojure bug? > > > Clojure 1.1.0-alpha-SNAPSHOT > > user=> (defprotocol P (foo [x & args])) > > P > > user=> (deftype T [x]) > > #'user/T > > user=> (extend ::T P {:foo (fn [x & args] args)}) > > nil > > user=> (foo (T 42)) > > java.lang.IllegalArgumentException: Wrong number of args passed to: > > user$eval--12$fn--14$G--1 (NO_SOURCE_FILE:0) > > user=> (foo (T 42)) > > java.lang.IllegalArgumentException: Wrong number of args passed to: > > user$eval--12$fn--14$G--1 (NO_SOURCE_FILE:0) > > user=> (foo (T 42) 1 2) > > (1 2) > > user=> (foo (T 42)) > > nil > > Varargs in protocols are not yet supported. > > Rich
-- 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