Introduction à la programmation fonctionnelle

Cours 7

kn@lri.fr
http://www.lri.fr/~kn

Au menu

On va tenter de modéliser un programme qui simule le jeu « le compte est bon »

Le code des fonctions sera ensuite à faire en TP.

On utilisera évidemment une approche fonctionnelle en raisonnant en terme de fonctions et de leur type.

Le compte est bon

Description du jeu

Dans ce jeu, un oracle choisit aléatoirement un entier compris entre 100 et 999 (par exemple 425)

On dispose ensuite de 24 cartes :

1 1 2 2 3 3 4 4 5 5 6 6 7 7
8 8 9 9 10 10 25 50 75 100

Les cartes sont retournées et 6 sont choisies au hasard, par exemple :

2 4 4 7 10 50 75

Deux joueurs ont alors un temps limité pour trouver l'entier cible en utilisant les cartes au plus une fois et en les combinant avec les opérations +, -, ×, ÷ :

((2 × 50) × 4) + (75 / (7-4)) = 425

Description du jeu (2)

Règle pour les opérations :

Description du programme

On souhaite écrire un programme OCaml qui simule ce jeu :

Analyse descendante

Dans l'approche par analyse descendante, on écrit le programme en partant de la fonction principale.
On fait appel à des fonctions plus élémentaires, que l'on ajoute alors au programme.
On répète ensuite l'opération pour chaque fonction introduite jusqu'à arriver à des fonctions élémentaires.

Pour ce cours, on va écrire les fonctions jusqu'à arriver au niveau élémentaire. Il faudra ensuite compléter ces fonctions en TP dans le fichier lceb.ml.