zip-reduce

2012-12-24 Thread JvJ
The other day I wrote this as a utility function because I couldn't find 
anything like it in the zipper libary.  Am I missing something?  Is 
something like this implemented somewhere?

(defn
  zip-reduce
  Reduce called on a zipper.
  [f acc z]
  (if (zip/end? z)
acc
(recur f (f acc z) (zip/next z

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

Re: zip-reduce

2012-12-24 Thread Alan Malloy
Probably better to write it more generally, by creating a seq from a zipper 
and then just using the ordinary reduce function on that zip:

(defn zip-seq [f acc z]
  (map node (tree-seq branch? children z)))

(reduce f acc (zip-seq some-zipper))

On Monday, December 24, 2012 6:27:00 PM UTC-8, JvJ wrote:

 The other day I wrote this as a utility function because I couldn't find 
 anything like it in the zipper libary.  Am I missing something?  Is 
 something like this implemented somewhere?

 (defn
   zip-reduce
   Reduce called on a zipper.
   [f acc z]
   (if (zip/end? z)
 acc
 (recur f (f acc z) (zip/next z


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

Re: zip-reduce

2012-12-24 Thread Alan Malloy
Except of course zip-seq doesn't need the f, acc arguments. Sorry about 
that.

On Monday, December 24, 2012 7:18:17 PM UTC-8, Alan Malloy wrote:

 Probably better to write it more generally, by creating a seq from a 
 zipper and then just using the ordinary reduce function on that zip:

 (defn zip-seq [f acc z]
   (map node (tree-seq branch? children z)))

 (reduce f acc (zip-seq some-zipper))

 On Monday, December 24, 2012 6:27:00 PM UTC-8, JvJ wrote:

 The other day I wrote this as a utility function because I couldn't find 
 anything like it in the zipper libary.  Am I missing something?  Is 
 something like this implemented somewhere?

 (defn
   zip-reduce
   Reduce called on a zipper.
   [f acc z]
   (if (zip/end? z)
 acc
 (recur f (f acc z) (zip/next z



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