Lambda Lille -  λ · Remote 10.1 - zippers -  Florian Angeletti
Channel: Lambda Lille
Date: 2021-03-07

Des zippers et des types, par Florian Angeletti


Les zippers sont une famille de structures de données qui permettent de représenter concrètement une navigation au sein d'une structure de donnée parente. Un exemple de zipper de liste serait : `1⇒2⇒3⇒4, Ici(5), 6⇒7`. Au-delà des listes et des arbres binaires, les choses se compliquent lorsqu'on commence à naviguer dans des types algébriques mutuellement récursifs : le type sous le curseur de navigation dépend du chemin qu'on a pris pour arriver jusqu'à lui. Nous verrons dans cette présentation comment les types algébriques généralisés (GADTs) apportent une solution naturelle à ce problème de dépendance entre donnée et types. De plus cet approche permet d'aborder les-dits GADTs dans un cadre différent des sempiternels interpréteurs de langage jouet.


Florian Angeletti est Ingénieur de recherche à l'Inria Paris dans l'équipe Cambium. Il travaille sur le compilateur OCaml, au niveau du système de type, des messages d'erreur; mais aussi autour des questions de release management.


---


Illustration réalisée par kinkate https://pixabay.com/fr/users/kinkate-4384506/