inf201 : algorithmique et programmation fonctionnelle
FP
A. Notion de récursivité
B. Récursivité dans
C. Récursivité dans séq(α)
Plan du chapitre 2
inf201 : algorithmique et programmation fonctionnelle FP
Récursivité dans séq(α)
C.I) Définition récursive de séq(α)
a) Notion de séquence
Jusqu’à présent : données manipulées unitaires (même si de
type complexe). On parle de données
scalaires
Types produits : nuplets de taille donnée et fixe
Comment manipuler des collections de données de taille
arbitraire ?
séquences d’éléments
inf201 : algorithmique et programmation fonctionnelle FP
C.I) Définition récursive de séq(α)
a) Notion de séquence
Séquence d’éléments : collection de données (éléments)
-de même type
- de taille quelconque (finie)
-imposant un ordre (premier, deuxième ,… dernier)
Structure de données fondamentale en info (modélisation)
Ex : - liste d’étudiants
- “main” dans un jeu de carte
-relevés de données scientifiques
etc.
inf201 : algorithmique et programmation fonctionnelle FP
C.I) Définition récursive de séq(α)
b) Définition de l’ensemble (type) séq(α)
1- Séquence d’entiers (on pose α=)
Ensemble des séquences sur définit récursivement par6:
- l’entité de base Nil (appelé «6séquence vide6»)
-les éléments construits à partir d’un entier et d’une séquence d’entiers :
Cons(pr, fin) (constructeur de séquence appelé «6ajout à gauche6»)
Représentation graphique6:
... /... cf tableau
Représentation mathématique :
séq() = {Nil} U {Cons(pr,fin) / pr ∈ ℤ, fin séq()}
inf201 : algorithmique et programmation fonctionnelle FP
C.I) Définition récursive de séq(α)
type seqEntier = Nil | Cons of int * seqEntier
seqEntier : type somme récursif
Exemples :
Cons(1,Nil) : séquence (singleton) ne contenant que l’entier 1
Cons(1,Cons(2,Cons(3,Nil))) : séquence contenant 1,2 et 3 (dans cet ordre)
/!\ Cons(1,Cons(2,Cons(3,Nil))) Cons(2,Cons(1,Cons(3,Nil))), la plupart du temps
Cons(pr, fin) : séquence constituée d’un premier entier (noté pr) et
d'une séquence d’entiers (notée fin)
1 / 46 100%