Skip to content

Comment on Clojure Zippers (2021)

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

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

Yes, 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.

Yes if List is immutable and the interface for stepping through the slides ist designed accordingly

AboutSource Built by g1lg1l

Hackerly is an independent reader for Hacker News, built on the public HN API. Not affiliated with Y Combinator.