Bonjour,
Je n'arrive pas à comprendre la différence entre paradigme de programmation fonctionnelle et impérative.
Par exemple pour un programme calculant le chiffre minimum d'une liste.
Ce que j'ai compris pour l'impératif:
- utilisation d'une boucle
- changement de valeur d'une variable en comparant un élément de la liste avec celui déjà présent dans la variable
- retour de la valeur de la variable quand toute la liste est parcouru
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 longueur=len(s) if longueur == 0 : print ("La liste est vide") else : mini = s[0] i=1 while i < longeuur : ifs[i]<mini: mini=s[i] i = i+1 print ("Le minimum est : ", mini)
Ce que j'ai compris pour la fonctionnelle
-pas de boucle
-utilisation de la récursivité (une fonction s'appelle elle-même)
L'exemple des fonctions factorielles m'aide à comprendre le principe:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 n! = n x (n-1)! si n=0 => 0 3! = 3×(3−1)!=3×2! = 3×2×(2−1)!=3×2×1! = 3×2×1×(1−1)!=3×2×1×0! = 3×2×1×1=6
En revanche je ne comprends pas l'utilisation de ce principe pour trouver le minimum de la liste:
Quel est le mécanisme qui fait parcourir la liste à la ligne 4 ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 let rec minimum s = match s with |[] -> failwith "La liste est vide" |[x] -> x |e::r -> let mini = minimum r in if mini > e then e else mini
sources:
http://www.irem.univ-bpclermont.fr/I...paradigmes.pdf
https://caml.inria.fr/distrib/books/llc.pdf
PS: Je débute en programmation et j'ai choisi Scheme pour commencer.
Je m'aperçois que j'ai de grosses lacunes en mathématiques et notions informatiques de base.
Merci
Partager