[Haskell-cafe] Question about zippers on trees

Alan & Kim Zimmerman alan.zimm at gmail.com
Wed Jul 22 22:39:22 UTC 2020


I am a bit late to this discussion, but do recall using a the rosezipper in
HaRe.

And I just took a look and recall doing some experiments with zippers,
which are at

https://github.com/alanz/HaRe/tree/98f390b6e9d48537429863ca890aa853afcd7c79/experiments

The actual code I used for the move definition refactoring is at
https://github.com/alanz/HaRe/blob/98f390b6e9d48537429863ca890aa853afcd7c79/src/Language/Haskell/Refact/Refactoring/MoveDef.hs#L355
I added a couple of helper functions too.

I am sure it is all horrible code, I was learning at the time, and it sort
of blew my mind.

Alan


On Wed, 22 Jul 2020 at 21:11, Olaf Klinke <olf at aatal-apotheke.de> wrote:

> > A direct implementation without using a library is interesting, thank
> > you. I
> > refrained from doing that, because I thought that Control.Zipper
> > would actually
> > do this for me. Actually, I was pretty successful with using
> > Control.Zipper to
> > change node labels, but failed doing more complicated stuff.
> >
> Isn't that a strong indicator that zippers are an improper abstraction
> for your purpose? Perhaps after rolling your own implementation you can
> more easily discover how to represent the algrorithm as a zipper.
>
> Olaf
>
> _______________________________________________
> Haskell-Cafe mailing list
> To (un)subscribe, modify options or view archives go to:
> http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
> Only members subscribed via the mailman list are allowed to post.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/haskell-cafe/attachments/20200722/c24f1498/attachment.html>


More information about the Haskell-Cafe mailing list