Thank you all for the explanations. I see now that I wasn't paying
close enough attention, and needed to add another pair of brackets to
destructure my lambda's single argument.

On Apr 16, 11:51 am, Per Vognsen <per.vogn...@gmail.com> wrote:
> Tangent:
>
> On Fri, Apr 16, 2010 at 7:41 PM, Douglas Philips <d...@mac.com> wrote:
> > (1)http://clojure.org/data_structuressays:
> > ... seq returns a sequence of map entries, which are key/value pairs. ...
>
> > I haven't yet found where in the docs a pair is defined, so I am guessing
> > that the concrete type (list, vector,...) for a pair is not
> > relevant/important.
>
> That's right. But what is surprising is that when you try to go in the
> other direction by converting a sequence of two-element sequences into
> a map then the concrete type of those two-element sequences matters a
> great deal:
>
> user> (conj {} [:foo 1])
> {:foo 1}
> user> (conj {} (list :foo 1))
> ; Evaluation aborted.
>
> What's happening is that APersistentMap.cons() has a hard-coded type
> check for IPersistentVector. There doesn't seem to be any good for why
> it shouldn't work with any ISeq. Maybe performance? If that is a valid
> concern, you could retain the current branch for IPersistentVector and
> append an else-if for ISeqs.
>
> This isn't a big problem in practice, though I've been bitten by it
> unexpectedly once or twice. But it's a surprising violation of the
> principle that one kind of sequence should be as good as any other
> when the context calls for no particular performance characteristics
> (e.g. O(1) random access).
>
> -Per
>
> --
> 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 
> athttp://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