Académique Documents
Professionnel Documents
Culture Documents
2 Quelques exemples
2.1 Un premier exemple : le type Rationnel
On peut dénir un type abstrait Rationnel, en dénissant l'ensemble de ses valeurs possibles par référence
à l'ensemble des rationnels en mathématiques Q et en proposant l'interface suivante :
I Constructeur : fait_rationnel : (entier,entier) → rationnel
I Sélecteurs :
. numérateur : rationnel → entier
. dénominateur : rationnel → entier
I Opérateur : + : (rationnel,rationnel) → rationnel
I Prédicat : égal : (rationnel,rationnel) → booléen
Le programmeur utilisant ce type de données doit pouvoir écrire :
egal(fait_rationnel(1,2) + faitrationnel(1,6), fait_rationnel(2,3))
I constructeur : I constructeur :
. fait_date . fait_date
2. On souhaite ajouter un nouveau prédicat avant qui teste si une date se trouve avant une autre.
(a) Proposez une structure de données pour ce prédicat
(a)
(b) Proposez une implémentation fonctionnelle de ce prédicat en Python.