On Mon, Oct 10, 2011 at 10:53 AM, Ambrose Bonnaire-Sergeant < abonnaireserge...@gmail.com> wrote:
> > > On Mon, Oct 10, 2011 at 10:28 PM, Rob Lally <rob.la...@gmail.com> wrote: > >> Would supporting other data structures make it slower when using vectors, >> or only when using non-vector seq's? >> > > If we use :seq pattern matching, it will use first/rest. This can be very > expensive. Vectors will take a performance hit. > > :vector matching uses subvec, which explains its advantages (speed) and > disadvantages (only supports vectors). > Well vector matching actually uses whatever form is most efficient for the "idea" of subvec. For primitive arrays, bytes it's done w/ offsets. > What I'm proposing is defaulting to :seq matching. It's very easy to > "switch on" :vector matching. > > Something like > > (match [v] > [[x & xs]] 1) <- :seq > > > (match [v] > [([x & xs] :vector)] 1) <- vector > > Ambrose > If we're going to go down this route, it's probably best to actually do what Clojure does with destructuring - use nth. So instead of using subvec, vector matching would also use offsets. David -- 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