I wonder if the fact that this currently doesn't work the way you want it to is a necessary consequence of structural sharing and the desired performance guarantees of dissoc.
In other words: I wonder if, on account of how struct maps are implemented (sort of like a vector, right?), the only way to get a hash map with one key gone is to do a linear copy of the struct map. If that's true (I have no idea if it is!), then there might be a reason for forcing you to do (dissoc (into {} mystruct) :akey) explicitly. Namely, it preserves the performance guarantees of dissoc. Garth On Tue, Dec 15, 2009 at 5:05 AM, ataggart <alex.tagg...@gmail.com> wrote: > > > On Dec 14, 11:23 pm, Richard Newman <holyg...@gmail.com> wrote: > > Something I keep bumping into: the SQL library returns rows as struct- > > maps. Often I want to do things like rename keys (:foo_bar => :foo- > > bar), strip out :id columns, etc. > > > > Nope! > > > > java.lang.Exception: Can't remove struct key > > > > Any opinions on returning a hash-map after 'removing' (remember, these > > are persistent data structures) a key from a struct-map? They print > > the same, act the same... except in this instance. > > So have (dissoc mystruct :akey) act like (dissoc (into {} > mystruct) :akey)? Sounds reasonable to me. > > -- > 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<clojure%2bunsubscr...@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