Comment on Clojure Zippers (2021)Comments−ngruhn10moI'm not sure if I get it. But I don't know Clojure syntax too well. Say I want to represent a slideshow state. I could do it with { slides: List<Slide>, current_index: Int } Or alternatively: { left_slides: List<Slide>, current: Slide, right_slides: List<Slide> } Is it fair to call the latter a Zipper?−shakadak10moYes, although it's usually defined as: { slides_shown: List<Slide>, slides_left: List<Slide> } Where the head of slides_left is the current slide. Pretty much any recursive data structure can be derived into a zipper.−laszlokorte10moYes if List is immutable and the interface for stepping through the slides ist designed accordingly
Comments
I'm not sure if I get it. But I don't know Clojure syntax too well. Say I want to represent a slideshow state. I could do it with
Or alternatively: Is it fair to call the latter a Zipper?Yes, although it's usually defined as:
Where the head of slides_left is the current slide. Pretty much any recursive data structure can be derived into a zipper.Yes if List is immutable and the interface for stepping through the slides ist designed accordingly