Developpez.com - Rubrique Python

Le Club des Développeurs et IT Pro

Apprendre la programmation fonctionnelle en Python

Un tutoriel de Mary Rose Cook traduit par Laurent Rosenfeld

Le 2017-03-14 15:02:45, par Community Management, Community Manager
Chers membres du club,

J'ai le plaisir de vous présenter ce tutoriel de Mary Rose Cook pour vous apprendre la programmation fonctionnelle en Python.

Quand on aborde la programmation fonctionnelle, c'est souvent pour parler d'un nombre étourdissant de caractéristiques « fonctionnelles » : les données immuables, les fonctions de première classe et l'optimisation de la récursion terminale. Ces fonctionnalités ne sont que des caractéristiques de langage qui facilitent la programmation fonctionnelle. On parle aussi de mappage, de réduction, de pipeline, de récursion, de curryfication et d'utilisation des fonctions d'ordre supérieur. Ce sont des techniques de programmation employées pour écrire du code fonctionnel. Il est enfin question de parallélisation, d'évaluation paresseuse et de déterminisme. Ce ne sont que des propriétés avantageuses des programmes fonctionnels.
Bonne lecture .

Retrouvez les meilleurs cours et tutoriels pour apprendre Python
  Discussion forum
6 commentaires
  • fred1599
    Expert éminent
    Ça fait 10 ans qu'on est en version python 3.x ! Quand est-ce que les gens comprendront qu'il faut quitter la version 2.x quand il est possible de le faire ? Pour un tutoriel c'est le cas...

    Pour reduce, il vire dans la version 3.x, même si on le retrouve grâce au module functools, mais que dit la doc ?

    if you really need it; however, 99 percent of the time an explicit for loop is more readable.
    Et je plussoie ! Mais certes, on parle de fonctionnelle et en parlant de ça, justement, c'est pas le point fort du langage, car très souvent des alternatives à ce mode de pensée sont possibles, plus lisibles et plus efficaces.

    La principale raison de mon intervention ici, restera donc la version python !
  • wiztricks
    Expert éminent sénior
    Envoyé par fred1599
    La principale raison de mon intervention ici, restera donc la version python !
    La version de Python ne change pas grand chose côté "fonctionnalités" que le tuto. essaie de mettre en valeur, c'est juste un plus. Mais le but reste de dire qu'on peut faire des choses dans ce style avec Python et pour ce qui veulent approfondir, c'est pas comme si la documentation Python ne venait pas avec un how-to à jour et bien plus complet.

    - W
  • BufferBob
    Expert éminent
    Envoyé par fred1599
    Pour reduce, il vire dans la version 3.x
    c'est étrange d'ailleurs, non ? autant map() et filter() je peux comprendre qu'une list comprehension remplace avantageusement y compris en terme de lisibilité, autant reduce() on le remplace par quoi ? on se retrouve obligé de dérouler le code ?
  • fred1599
    Expert éminent
    Salut wiztricks,

    Mais le but reste de dire qu'on peut faire des choses dans ce style avec Python
    Oui, j'ai bien compris d'où mon intervention sur la version python

    Ce qui est pénible est de voir en 2017 des tutoriels avec une version 2.x, qu'il n'est quand même pas difficile de se mettre à jour entre les deux versions afin de rendre plus facile l'apprentissage d'un débutant utilisant la version 3.x

    Le How-to est bien plus complet, mais je suis sûr que la langue de shakespeare ne facilite pas la tâche de certains lecteurs.
  • wiztricks
    Expert éminent sénior
    Envoyé par BufferBob
    c'est étrange d'ailleurs, non ? autant map() et filter() je peux comprendre qu'une list comprehension remplace avantageusement y compris en terme de lisibilité, autant reduce() on le remplace par quoi ? on se retrouve obligé de dérouler le code ?
    On le remplace par functools.reduce. i.e. c'est juste passé du module builtins à la bibliothèque functools.

    - W
  • BufferBob
    Expert éminent
    oui ça se tient en fait merci