On Nov 17, 2011, at 1:01 AM, Ben Smith-Mannschott wrote:
>> (def o (Object.))
>>
>> (def om (with-meta* o {:foo true}))
>>
>> (def whatever (with-meta* o {:foo false}))
>>
>> (meta* om) ;=> {:foo false}
>>
>> Doesn't really support Clojure's concept of metadata if it's shared
>> global mutable state.
>
> Yes, that's true. Though it wouldn't occur to me to expect some random
> POJO to behave as if it were persistent WRT metadata. POJOs generally
> conflate state and identity and are mutable. That's life. If that's a
> problem, then you'll need to wrap it in something that supports
> metadata.
Mechanisms like what Ben proposed have been discussed before, but declined for
core (which is probably a good decision). However, something is generally
better than nothing.
meta* isn't clojure.core/meta, so it can have weaker/different semantics
without apologizing for it, IMO.
- Chas
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to [email protected]
Note that posts from new members are moderated - please be patient with your
first post.
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en