On Dec 13, 11:36 am, Stuart Sierra <the.stuart.sie...@gmail.com>
wrote:
> It's not clojure.walk, it's bean:
>
> user=> (empty (bean "hi"))
> AbstractMethodError
> clojure.lang.APersistentMap.empty()Lclojure/lang/IPersistentCollection;
> clojure.core.proxy$clojure.lang.APersistentMap$0.empty (:-1)
>
> The generated class doesn't implement the 'empty' method.
>
> Please file a JIRA ticket, (and patch!)

I don't think there is an obvious way to implement (empty b) for
beans, since empty is supposed to return an empty collection of the
same type. bean-maps are implemented as a snapshot-creating wrapper
around a mutable underlying object, and if the object changes then so
do new generated snapshots. So if you tried to make an empty one, its
underlying object would still not be empty, and what would snapshots
do then? You could make (empty b) just return {}, but that's a
philosophical departure from how bean and empty generally behave so I
don't think it's as easy as "this behavior is incorrect, please
implement a fix".

-- 
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