1 val zv = for { 2 z <- List(2,8,1,5,4,11).toZipper 3 s1 <- z.next 4 s2 <- s1.modify{_ + 2}.some 5 } yield s2 //> zv : Option[scalaz.Zipper[Int]] = Some(Zipper(<lefts>, 10, <rights>))
6
7 zv.get.show //> res8: scalaz.Cord = Zipper(Stream(2), 10, Stream(1,5,4,11))
8 zv.get.toList //> res9: List[Int] = List(2, 10, 1, 5, 4, 11)
9 ... 10 val zv = for { 11 z <- List(2,8,1,5,4,11).toZipper 12 s1 <- z.next 13 s2 <- s1.modify{_ + 2}.some 14 s3 <- s2.move(1) 15 s4 <- s3.delete 16 } yield s4 //> zv : Option[scalaz.Zipper[Int]] = Some(Zipper(<lefts>, 5, <rights>))
17
18 zv.get.show //> res8: scalaz.Cord = Zipper(Stream(10,2), 5, Stream(4,11))
19 zv.get.toList //> res9: List[Int] = List(2, 10, 5, 4, 11)
20 ... 21 val zv = for { 22 z <- List(2,8,1,5,4,11).toZipper 23 s1 <- z.next 24 s2 <- s1.modify{_ + 2}.some 25 s3 <- s2.move(1) 26 s4 <- s3.delete 27 s5 <- s4.findZ {_ === 11} 28 s6 <- if (s5.focus === 12) s5.delete else s2.insert(12).some 29 } yield s6 //> zv : Option[scalaz.Zipper[Int]] = Some(Zipper(<lefts>, 12, <rights>))
30
31 zv.get.show //> res8: scalaz.Cord = Zipper(Stream(10,2), 12, Stream(1,5,4,11))
32 zv.get.toList //> res9: List[Int] = List(2, 10, 12, 1, 5, 4, 11)
33 ... 34 val zv = for { 35 z <- List(2,8,1,5,4,11).toZipper 36 s1 <- z.next 37 s2 <- s1.modify{_ + 2}.some 38 s3 <- s2.move(1) 39 s4 <- s3.delete 40 s5 <- s4.findZ {_ === 11} 41 s6 <- if (s5.focus === 12) s5.delete else s2.insert(12).some 42 s7 <- s6.end.delete 43 s8 <- s7.start.some 44 } yield s8 //>