On Wednesday 10 December 2008 10:40, Daniel Eklund wrote:
> Hi all,
>
> ...
>
> One thing I immediately ran up against were certain situations where
> I have a map and want to "modify" a value several levels deep into
> the hierarchy. Imagine the following structure:
>
> (def nested-structure { :level 0,
> :nested1 { :level 1,
> :nested2 { :level 2,
> :final-data "initial data"}}})
Look into clojure.zip (.../src/clj/clojure/zip.clj in the Clojure
source).
> ...
>
> 1) Am I missing something from the API that could have done what my
> function "path-rebind"? (I would have assumed that this would be a
> common need and that programmers would not need to roll their own
> each time)
Yes. The Zipper.
> 2) Am I missing out on a clever "reduce" usage that could have made
> this more in-line? i.e. how's my code?
>
> It was after I made wrote this function and contemplated how I could
> make it abstract (i.e. with vectors, lists, etc) that I noticed the
> existence of the "zip" library... Maybe question 1) above is
> answered by the "zip" library. Is/Will the zip library be the
> recommended means by which to navigate/modify data structures of
> arbitrary depth, branching, and concrete 'type' ?
There you have it. I would say "yes."
> daniel
Randall Schulz
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Clojure" group.
To post to this group, send email to [email protected]
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
-~----------~----~----~----~------~----~------~--~---