Pytania oznaczone «zipper»

112
Zrozumienie, dlaczego Zipper jest Comonad

To jest kontynuacja odpowiedzi na moje poprzednie pytanie. Załóżmy, że trzeba mapować każdy element a:Aod List[A]do b:Bz funkcji def f(a:A, leftNeighbors:List[A]): Bi generować List[B]. Oczywiście nie mogę po prostu zadzwonić mapna listę, ale mogę użyć suwaka listy . Zamek błyskawiczny to kursor...

80
Zipper Comonads, ogólnie

Biorąc pod uwagę dowolny typ kontenera, możemy utworzyć (skoncentrowany na elementach) Zipper i wiedzieć, że ta struktura jest Comonad. Zostało to niedawno zbadane ze wspaniałymi szczegółami w innym pytaniu o przepełnienie stosu dla następującego typu: data Bin a = Branch (Bin a) a (Bin a) |...