On Oct 22, 6:45 pm, Chouser <[EMAIL PROTECTED]> wrote:

> Don't dismiss clojure/zip to easily.  The functions defined there
> largely defer to functions stored in metadata on the object.  This
> means a new type of zip tree can be provided by anyone in any
> namespace, simply by returning an object with the appropriate
> metadata.

That looks pretty smart indeed...

This leads me to  a more down-to-earth question: what is the right way
to use clojure/zip in a program? First I tried

    (use 'clojure.zip)

but this complains about "replace" which exists already in the clojure
namespace. After studying the doc, I decided to try renaming:

    (use 'clojure.zip :verbose :rename '{replace zip-replace})

This leads to an error message that I don't understand at all:

user=> java.lang.ClassCastException: java.lang.Boolean
java.lang.ClassCastException: java.lang.Boolean
        at clojure.refer__1051.doInvoke(boot.clj:1969)
        at clojure.lang.RestFn.applyTo(RestFn.java:144)
        at clojure.apply__135.doInvoke(boot.clj:364)
...

Who is casting which Boolean to what there? And, more importantly,
what do I need to fix in my code line?


> In order to implement Java interfaces such that clojure/seq and such
> builtin functions work, you do need to implement a Java class.  This
> can be done with 100% Java code by gen-class and possibly the
> easier-to-use proxy function.

Proxy looks useful indeed, thanks!

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

Reply via email to