Hacker News new | ask | show | jobs
by ngruhn 239 days ago
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?
2 comments

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