Oh, I didn't know that. It makes me wonder, then, why integers were
not implemented as functions of sequential collections: (3
[:a :b :c]).

Ah, well. I guess since let can't be changed, it's then a choice
between using accessors or being more elegant. Thanks for the reply.

On Jun 8, 9:25 am, Konrad Hinsen <konrad.hin...@laposte.net> wrote:
> On Jun 8, 2009, at 17:46, samppi wrote:
>
> > ...I'd love it if the values of symbol keys could be any symbol, not
> > just keywords, so that the key symbol is bound to (val-symbol
> > the-map):
> >   (let [{name this-is-a-symbol} person-1] ...) ; name is bound to
> > (this-is-a-symbol person-1)
>
> > It's backwards-compatible. But is this possible? Practical?
>
> I don't think it could made to be backwards-compatible. The  
> documentation states:
>
>         "Map binding-forms allow you to bind names to parts of associative  
> things (not just maps), like maps, vectors, string and arrays (the  
> latter three have integer keys)."
>
> The current implementation of destructuring map binding forms uses get:
>
>         (destructure '[{name :name} person-1])
> ->   [map__268 person-1 name (clojure.core/get map__268 :name)]
>
> This works as advertised with maps, vectors, strings, etc. Your  
> proposal would change the expansion to
>
> ->   [map__268 person-1 name (:name map__268)]
>
> That works fine if person-1 is a map, but destructuring a vector with  
> a map binding form is no longer possible.
>
> Nothing stops you from defining your own let-like macro with your own  
> destructuring rules, of course!
>
> Konrad.
--~--~---------~--~----~------------~-------~--~----~
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