Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (defn map-zipper
- "apply f to every element of zipper z, return results as a lazy sequence"
- [f z]
- (lazy-seq
- #_(cl-format true "~&(F: ~a ~&Z: ~a~&" (f z) z)
- (if (z/end? z)
- nil ;;acc
- (cons (f z)
- (map-zipper f (z/next z))))))
- (defn filter-zipper
- "return elements of zipper where (pred element) is true, as a lazy sequence"
- [pred z]
- (lazy-seq
- (if (z/end? z)
- nil
- (if (pred z)
- (cons z
- (filter-zipper pred (z/next z)))
- (filter-zipper pred (z/next z))))))
Advertisement
Add Comment
Please, Sign In to add comment