La programmation fonctionnelle en pratique

Concepts des paradigmes de programmation

Eleanor Thomas

Senior Data Analytics Engineer

La programmation fonctionnelle en pratique

  • Trois exemples de fonctions pures
  • Différence clé avec une fonction Python générale : pas d’effets de bord
  • Les fonctions pures peuvent en appeler d’autres et rester pures

Tableau de dessin

Concepts des 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
  • Créer d’abord une nouvelle liste vide
  • Parcourir chaque élément de la liste d’entrée
    • L’élever au carré
    • L’ajouter à la nouvelle liste
  • Renvoyer la nouvelle liste
Concepts des paradigmes de programmation

Exemple 2 - Correction d’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 hors du corps de la fonction
  • N’est pas une fonction pure
Concepts des 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
  • La fonction est désormais « pure »
Concepts des 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 des paradigmes de programmation

Passons à la pratique !

Concepts des paradigmes de programmation

Preparing Video For Download...