• [^] # Re: map, zip, reduce

    Posté par (site web personnel) . En réponse au journal map() est mort ! longue vie à imap() !. Évalué à 7.

    zip est très pratique pour faire des opérations en parallèles sur deux séquences.

    A propos des iterateurs, les expressions génératrices sont une manières très élégante de faire de la programmation fonctionnelle en python :

    (f(x) for x in l) est équivalent à [f(x) for x in l] mais retourne un générateur (avec évalutation retardée) ce qui évite de construire toute une liste chargée en mémoire même si seul les premiers éléments ne sont utilisés. imap fait l'opération correspondante pour la fonction map.

    Donc contrairement à toi je trouve que python évolue dans la bonne direction : on peut faire de la programmation (pseudo-)fonctionnelle efficace en python.

    Et pour ceux qui aiment OCaml et ses functors (et les autres aussi :), on peut retrouver ce type de feelings en python avec la Zope Component Architecture :
    http://griddlenoise.blogspot.com/2005/12/zope-component-arch(...)

    Il n'y a pas besoin de tout Zope3, seuls les deux modules zope.interface et zope.component sont à ajouter dans son python path. Ca fait du code modulaire et vraiment réutilisable :)