Pour ce dernier TP, il vous est demandé de refaire un des TP ou un exemple de programme vu pendant ce cours de programmation fonctionnelle ou même pendant un autre cours, en Java. Vous êtes libre de choisir quel TP vous souhaitez refaire.
Il vous est demandé d'essayer d'utiliser au maximum les aspects fonctionnels de Java. En particulier, vous limiterez au maximum l'utilisation de variables non-finales et de structures de données mutables.
En plus de votre code source, vous rendrez un rapport expliquant ce que vous avez réussi à faire dans un style fonctionnel, et ce que vous n'avez pas réussi à traduire en fonctionnel et pourquoi. Vous devez aussi commentez la pertinence des choix de conceptions que vous avez effectués, par exemple en quoi un style fonctionnel vous aurait permis d'obtenir un programme de meilleure ou de moins bonne qualité.
Exceptionnellement, vous aurez deux semaines pour terminer ce devoir et le rendre comme d'habitude sur Ametice.
Voici quelques exemples de sujets possibles :
Attention à ne pas essayer de faire une traduction litérale du programme OCaml. Les programmes en OCaml et Java ont des structures très différentes (Java étant orienté objet), une traduction litérale donnerait nécessairement du Java de mauvaise qualité. Il vous faudra repenser l'architecture du programme, en utilisant les intuitions acquises en programmation fonctionnelle et vos connaissances acquises en cours de conception orientée objet.