La programmation fonctionnelle à l'œuvre

Concepts de paradigmes de programmation

Eleanor Thomas

Senior Data Analytics Engineer

La programmation fonctionnelle à l'œuvre

  • Trois exemples de fonctions pures
  • Différence clé entre une fonction pure et une fonction Python générale : aucun effet secondaire
  • Les fonctions pures peuvent appeler d'autres fonctions pures et rester pures

Tableau à dessin

Concepts de paradigmes de programmation

Exemple 1 - Écrire une fonction pure

def square_list(input_list):
    new_list = []

for item in input_list:
new_item = item ** 2
new_list.append(new_item)
return new_list
  • D'abord, créer une nouvelle liste vide
  • Parcourir chaque élément de la liste en entrée
    • L'élever au carré
    • L'ajouter à la nouvelle liste
  • Retourner la nouvelle liste
Concepts de paradigmes de programmation

Exemple 2 - Corriger une fonction « impure »

sample_mean = 10
scale_factor = 2

def scale_list(input_list):
    new_list = []
    for item in input_list:
        new_item = (item - sample_mean) / scale_factor
        new_list.append(new_item)
    return new_list
  • Dépend de variables extérieures au corps de la fonction
  • N'est pas une fonction pure
Concepts de paradigmes de programmation

Exemple 2 - Fonction « impure » corrigée

def scale_list(input_list, sample_mean, scale_factor):
    new_list = []
    for item in input_list:
        new_item = (item - sample_mean) / scale_factor
        new_list.append(new_item)
    return new_list
  • Les variables sample_mean et scale_factor deviennent des paramètres d'entrée de la fonction
  • La fonction est maintenant « pure »
Concepts de paradigmes de programmation

Exemple 3 - Combiner des fonctions pures

def scale_value(value, sample_mean, scale_factor):
    scaled_value = (value - sample_mean) / scale_factor
    return scaled_value

def scale_list(input_list, sample_mean, scale_factor):
    new_list = []
    for item in input_list:
        new_item = scale_value(item, sample_mean, scale_factor)
        new_list.append(new_item)
    return new_list
Concepts de paradigmes de programmation

Passons à la pratique !

Concepts de paradigmes de programmation

Preparing Video For Download...