Quand utilise-t-on la programmation fonctionnelle ?

Concepts des paradigmes de programmation

Eleanor Thomas

Senior Data Analytics Engineer

Applications de la programmation fonctionnelle

  • Machine learning, deep learning, intelligence artificielle
  • Analyse et traitement de grands jeux de données
  • Ingénierie des données (p. ex. en Scala et Clojure)

Traitement des données

Concepts des paradigmes de programmation

Exemple de programmation fonctionnelle

def process_data(raw_data):
    processed_data = raw_data

    ... further processing steps here! ...

    return processed_data
  • La fonction prend des données en entrée dans raw_data
  • Elle crée une nouvelle variable de sortie appelée processed_data
  • Elle exécute une suite d’étapes cohérentes pour traiter les données
  • Elle retourne processed_data
Concepts des paradigmes de programmation

Avantages et inconvénients de la programmation fonctionnelle

AVANTAGES

  • Fonctions pures plus faciles à lire et à déboguer
  • Plus simple à tester
  • Moins d’effets inattendus dans le code
  • Forte réutilisabilité entre projets
  • Exécution parallèle possible pour accélérer le code

INCONVÉNIENTS

  • Changement de paradigme difficile, parfois limitant : les « effets de bord » (écriture de fichiers, etc.) sont souvent ce que l’on veut faire
  • Moins d’experts, d’outils et de frameworks disponibles
  • Courbe d’apprentissage plus raide et moins de ressources
  • Usage mémoire plus élevé, donc applications limitées
Concepts des paradigmes de programmation

Programmation fonctionnelle et déclarative

  • La programmation fonctionnelle est un type de programmation déclarative
  • Programmation déclarative : dire à l’ordinateur quoi faire, pas comment le faire
  • La programmation fonctionnelle n’est qu’un type de programmation déclarative
  • Le programmeur indique quelles fonctions exécuter, pas les étapes exactes

La programmation fonctionnelle est déclarative

Concepts des paradigmes de programmation

Passons à la pratique !

Concepts des paradigmes de programmation

Preparing Video For Download...