TP7

Correction des questions 4 et 5

On donne ici plusieurs corrigés possibles pour les questions 4 et 5, les plus délicates. Il s'agit de traduire une fonction d'itération en CPS, puis en un itérateur persistant, et enfin de défonctionaliser le tout pour obtenir un itérateur persistant de premier ordre.

La solution obtenue par transformation de code dans la v1 est classique et assez naturelle: de nombreux programmeurs l'auraient écrite directement. Le propos ici est de montrer que la transformation est systématique, et pourrait vous permettre de "découvrir" des itérateurs persistants de premier ordre auxquels vous n'auriez pas pensé tout de suite.

Pour la question 6, quels itérateurs saurez vous faire directement? lesquels pouvez vous faire en utilisant les transformations vues ci-dessus?