OVH Cloud OVH Cloud

lambda, reduce(), filter() apply(), map()

25 réponses
Avatar
candide
Bonjour,

Qu'est-ce que de

lambda, reduce(), filter(), apply(), map()

reste à l'identique dans Python 3.0 ?


À propos, quand Python se dotera-t-il d'une documentation digne de son zen ?

10 réponses

1 2 3
Avatar
candide
William Dode a écrit :

Le principe de python est que les choses simples restent simples et que
les choses complexes soient quand même possibles mais réservées aux cas
vraiment spécifiques.



Non, tu extrapoles ou plutôt tu fais preuve d'une nuance qui ne correspond pas
du tout ce qui est clamé à droite et à gauche. Juste deux exemples :

*) Martelli dans sa préface : "Python is both simple and powerful" et plus loin
(page 3) "Python is easy to learn".

*) Le fameux tutoriel officiel dit tout au début :
"Python is an easy to learn, powerful programming language."


Personnellement, je trouve qu'il y a plein de choses compliquées en Python dès
qu'on sort des sentiers battus (qui eux effectivement sont très accessibles).


Il ne faut donc pas l'aborder de la même manière
qu'un langage comme le C++ où il faut d'abord connaitre les arcanes du
langage avant de pouvoir faire quelque chose de simple.



Je n'en sais rien et de toute façon tu t'exprimes ci-dessus de manière trop
vague (jursqu'où va le simple pour toi, jusqu'où vont "les arcanes", etc) pour
qu'on puisse répondre de manière vraiment intéressante.


L'intro du tuto est assez claire là dessus :
"This tutorial does not attempt to be comprehensive and cover every
single feature, or even every commonly used feature.




Oui, quand j'avais lu ça, j'étais assez stupéfié. Cette mise-en-garde a
seulement le mérite d'une honnêteté partielle et elle dit

"ma doc est complètement improvisée, hétérogène et probablement incohérente. Bon
moi je m'occupe du langage et pas de la doc ce qui est pas assez valorisant et
de toutes façons super chiant à écrire et donc si ça vous plait pas
démerdez-vous pour vous faire expliquer par quelqu'un qui a compris. "




Bref, si tu souhaite réellement te mettre au python, commence simplement
par n'utiliser que ce qui te semble évident et intuitif, laisse le reste
pour plus tard.




Tiens, on dirait du Rafarin.

Quand ce sera mûr tu verras que les réponses viendront
facilement.




Ça c'est toi qui le dis.


Mais si t'essayes juste de troller, c'est pas le bon angle d'attaque.




Ça met de l'animation sur ce forum qui en avait bien besoin.


Pour ma part c'est le premier langage que j'utilise sans avoir eu besoin
de lire un seul livre !



Et bien brillant comme tu es, il est clair que ton cas ne va pas s'appliquer au
commun des débutants. Je pense que d'ici peu tu vas nous créer ton propre
langage si ce n'est déjà fait. A mon avis des gens qui ont des "facilités" comme
toi n'ont rien à faire sur un forum de discussions où on essaye d'aider les gens
à comprendre vu que ton postulat est :

"moi, sans jamais avoir lu aucun livre et sans avoir jamais pratiqué le moindre
langage, j'utilise (et on doit comprendre "je maîtrise") Python.

Alors, où est le problème mec ? "

Avec des postulats pareils, faut pas s'étonner du degré zéro de la doc. Et le
pire, c'est que connaissant bien le genre de fanfaron comme toi, au bout de
quelques mois, je vais me rendre compte que tu ne connais pas si bien le langage
que ça, que tu n'as pas eu autant de facilités et que tu aurais peut-être bien
fait d'ouvrir un livre ou deux.



Sinon, y aussi toujours moyen de participer à la rédaction de la
documentation



Ce n'est pas tellement le problème d'écrire une documentation, j'ai envie de
dire "une de plus". Il s'agit de créer un vrai modèle de documentation pour
démarrer, pratiquer et maîtriser _rapidement_ un (et en fait plusieurs) langage
de programmation. Actuellement, c'est le degré zéro.

si tu veux faire avancer le schmilblick au lieu d'écrire
une thèse.



Les deux sont possibles. Le problème est d'abord qu'aujourd'hui la documentation
est la dernière roue du carrosse comme en témoigne bien l'extrait que tu as
donné ci-dessus.
Avatar
Pierre Maurette
candide, le 28/06/2009 a écrit :
Pierre Maurette a écrit :

Remarque HS, voire iconoclaste: la notion de /closure/ est assez "prise
de tête".



Vous parlez de closure au sens classique du terme (ça n'a rien à voir avec
Python) ? je cite par exemple Martelli

A nested function that accesses values from outer local variables is also
known as a closure.

En soi, ça n'a rien de compliqué mais effectivement les docs n'expliquent ni
ne contextualisent l'intérêt de la notion.



Je pensais que VOUS aviez compris sur fr.comp.lang.c que VOUS me cassez
les génitoires. Définitivement.


J'ai eu besoin de piger en Delphi ou C++ Builder. Mais en
Python, je fais des trucs assez efficaces sans avoir besoin de descendre
dans les tripes du langage. Je lis avec intérêt fr.comp.lang.python et
d'autres lieux, mais j'apprécie surtout le fait que Python est assez
tolérant à l'incompétence ;-)



Ce que tu dis peux être différemment interprété.



En particulier que cette tolérance à l'incompétence en fait un langage
qui VOUS convient parfaitement ?

En tous cas, disons que
Python ne force pas pour programmer des choses même un peu complexes à passer
sous les fourches caudines d'un certain jargon intello. Dommage que les doc
que je lis ne sachent pas s'inspirer de la simplicité et du sens de
l'accessibilité originels de Python...



Pôvre Khon ...

--
Pierre Maurette
Avatar
candide
Pierre Maurette a écrit :

Je pensais que VOUS aviez compris sur fr.comp.lang.c que VOUS me cassez
les génitoires. Définitivement.



Oui, et alors ? T'as pas un kill-file ?

Le problème est que le C est beaucoup moins intolérant que Python envers
l'incompétence et visiblement, tu n'as pas encore digéré que je t'ai rappelé
cela sur fclc.

Et tu as dû être vraiment très piqué alors que voulant redresser mon orthographe :

http://groups.google.fr/group/fr.comp.lang.c/msg/37171392a16c7399?hl=fr

je t'ai rappelé que ton ouvrage était criblé de fautes d'accord grossières, une
petite liste non exhaustive se trouve ici :

http://groups.google.fr/group/fr.comp.lang.c/msg/4cc1a4b8d002cf25?hl=fr

et là

http://groups.google.fr/group/fr.comp.lang.c/msg/a1c0511707b98edf?hl=fr

L'en est où ton errata ?


Pôvre Khon ...




TOI-même !
Avatar
William Dode
On 28-06-2009, candide wrote:

Personnellement, je trouve qu'il y a plein de choses compliquées en Python dès
qu'on sort des sentiers battus (qui eux effectivement sont très accessibles).



Ce qui n'est pas gênant. Quand on fait du ski hors piste on ne s'attend
pas à trouver des remontes pentes.



Il ne faut donc pas l'aborder de la même manière
qu'un langage comme le C++ où il faut d'abord connaitre les arcanes du
langage avant de pouvoir faire quelque chose de simple.



Je n'en sais rien et de toute façon tu t'exprimes ci-dessus de manière trop
vague (jursqu'où va le simple pour toi, jusqu'où vont "les arcanes", etc) pour
qu'on puisse répondre de manière vraiment intéressante.



C'est pas vague, c'est en fonction de chacun, de ses expériences.



L'intro du tuto est assez claire là dessus :
"This tutorial does not attempt to be comprehensive and cover every
single feature, or even every commonly used feature.




Oui, quand j'avais lu ça, j'étais assez stupéfié. Cette mise-en-garde a
seulement le mérite d'une honnêteté partielle et elle dit

"ma doc est complètement improvisée, hétérogène et probablement incohérente. Bon
moi je m'occupe du langage et pas de la doc ce qui est pas assez valorisant et
de toutes façons super chiant à écrire et donc si ça vous plait pas
démerdez-vous pour vous faire expliquer par quelqu'un qui a compris. "



La doc aurait également du mentionner qu'elle n'as pas pour but
d'apprendre l'anglais au lecteur.



Bref, si tu souhaite réellement te mettre au python, commence simplement
par n'utiliser que ce qui te semble évident et intuitif, laisse le reste
pour plus tard.




Tiens, on dirait du Rafarin.

Quand ce sera mûr tu verras que les réponses viendront
facilement.




Ça c'est toi qui le dis.



Curieux non sur un forum de discussion ?



Mais si t'essayes juste de troller, c'est pas le bon angle d'attaque.




Ça met de l'animation sur ce forum qui en avait bien besoin.



De troll ?

Le peu de trafic qu'il y a sur le forum d'un langage aussi populaire
montre justement que la doc est suffisante et qu'il y a très peu de
pièges.



Pour ma part c'est le premier langage que j'utilise sans avoir eu besoin
de lire un seul livre !



Et bien brillant comme tu es, il est clair que ton cas ne va pas s'appliquer au
commun des débutants. Je pense que d'ici peu tu vas nous créer ton propre
langage si ce n'est déjà fait. A mon avis des gens qui ont des "facilités" comme
toi n'ont rien à faire sur un forum de discussions où on essaye d'aider les gens
à comprendre vu que ton postulat est :

"moi, sans jamais avoir lu aucun livre et sans avoir jamais pratiqué le moindre
langage, j'utilise (et on doit comprendre "je maîtrise") Python.

Alors, où est le problème mec ? "



Le problème est que tu veux nous faire dire et écrire ce qu'on n'a
jamais dit. Si tu lis la doc de la même manière ce n'est pas étonnant
que tu ne la trouve pas claire.


Avec des postulats pareils, faut pas s'étonner du degré zéro de la doc. Et le
pire, c'est que connaissant bien le genre de fanfaron comme toi, au bout de
quelques mois, je vais me rendre compte que tu ne connais pas si bien le langage
que ça, que tu n'as pas eu autant de facilités et que tu aurais peut-être bien
fait d'ouvrir un livre ou deux.



cqfd sur ce qu'on essaye tous de te faire comprendre, bien naïvement
d'aileurs !




Sinon, y aussi toujours moyen de participer à la rédaction de la
documentation



Ce n'est pas tellement le problème d'écrire une documentation, j'ai envie de
dire "une de plus". Il s'agit de créer un vrai modèle de documentation pour
démarrer, pratiquer et maîtriser _rapidement_ un (et en fait plusieurs) langage
de programmation. Actuellement, c'est le degré zéro.



Quand on cherche des boulons dans une boulangerie, forcément...


si tu veux faire avancer le schmilblick au lieu d'écrire
une thèse.



Les deux sont possibles. Le problème est d'abord qu'aujourd'hui la documentation
est la dernière roue du carrosse comme en témoigne bien l'extrait que tu as
donné ci-dessus.



Tu comprends vite mais faut t'expliquer longtemps, c'est ça ?


--
William Dodé - http://flibuste.net
Informaticien Indépendant
Avatar
Bruno Desthuilliers
candide a écrit :
William Dode a écrit :



(snip)

Pour ma part c'est le premier langage que j'utilise sans avoir eu besoin
de lire un seul livre !





+1. La doc officielle + comp.lang.python, ça suffit largement.

Et bien brillant comme tu es, il est clair que ton cas ne va pas s'appliquer au
commun des débutants. Je pense que d'ici peu tu vas nous créer ton propre
langage si ce n'est déjà fait. A mon avis des gens qui ont des "facilités" comme
toi n'ont rien à faire sur un forum de discussions



no comment.

où on essaye d'aider les gens
à comprendre vu que ton postulat est :

"moi, sans jamais avoir lu aucun livre et sans avoir jamais pratiqué le moindre
langage, j'utilise (et on doit comprendre "je maîtrise") Python.

Alors, où est le problème mec ? "

Avec des postulats pareils, faut pas s'étonner du degré zéro de la doc. Et le
pire, c'est que connaissant bien le genre de fanfaron comme toi, au bout de
quelques mois, je vais me rendre compte que tu ne connais pas si bien le langage
que ça, que tu n'as pas eu autant de facilités et que tu aurais peut-être bien
fait d'ouvrir un livre ou deux.



William connait très bien Python. Et toi, tu ferais peut-être mieux
d'ouvrir un manuel de savoir-vivre ou deux.
Avatar
candide
William Dode a écrit :
On 28-06-2009, candide wrote:

Personnellement, je trouve qu'il y a plein de choses compliquées en Python dès
qu'on sort des sentiers battus (qui eux effectivement sont très accessibles).



Ce qui n'est pas gênant. Quand on fait du ski hors piste on ne s'attend
pas à trouver des remontes pentes.



Ce genre d'analogies a ses limites. Il y a beaucoup de notions relativement
courantes (les itérateurs, les générateurs, les décorateurs, les descripteurs,
les méthodes spéciales, etc) qui ne sont pas si faciles à comprendre et qui
pourtant sont censées être le coeur du langage, pour ne pas dire un argument de
vente.



La doc aurait également du mentionner qu'elle n'as pas pour but
d'apprendre l'anglais au lecteur.




Tu as du mal à admettre l'évidence : la doc dit elle-même qu'elle est incomplète
et incohérente.



Le peu de trafic qu'il y a sur le forum d'un langage aussi populaire



Aussi populaire ? Oui et non, là encore c'est une question de mesure. Question
popularité, on est encore loin de Java ou même de C qui lui reste très répandu.
Par exemple, Python est loin loin d'être enseigné dans toutes les universités,
il semblerait même que ce soit plutôt marginal.


Maintenant, je dirais qu'après une période de croissance forte, Python a du mal
a élargir son premier cercle. Le trafic sur le forum de developpez concernant
Python reste limité. Un gros site français d'apprentissage des langages de
programmation (C, C++, Java, Php et web) http://www.siteduzero.com/
et destiné aux programmeurs débutants et intermédiaires n'a pas de tutoriel
Python ni de forum dédié Python.

le binding Pygame de la bibliothèque SDL n'a jamais eu l'ampleur d'utilisation
de cette dernière au travers de C ou C++.

montre justement que la doc est suffisante et qu'il y a très peu de
pièges.




Ah! Ah! Ah! tu ne doutes vraiment de rien toi. Vu le trafic qu'il y a sur fclc
ou fclc++, on va en déduire qu'il n'y que très peu de pièges en C ou en C++ ...


Le problème du trafic sur ce forum est

*) d'abord en rapport à la baisse générale du trafic sur usenet (en tous cas
pour les branches sci et comp) et en particulier sur la branche fr où c'est
vraiment très très sensible.
*) peut-être en rapport avec la façon d'intervenir de certains participants ...

M'enfin, d'après ce que j'ai pu consulter des archives, ce forum est très pauvre
justement pas du tout en rapport avec l'intérêt habituel pour Python, aucune
comparaison avec l'équivalent anglophone. C'est d'autant plus curieux que si
Usenet est en déclin évident, ses archives sont en général très riches. Bon,
fclpython n'a jamais pris.


Le problème est que tu veux nous faire dire et écrire ce qu'on n'a
jamais dit.




On se demande alors pourquoi tu nous as dit que :

Python est ton premier langage et tu n'as jamais ouvert aucun livre pour l'utiliser.


Tu cherches à dire quoi : que t'en as une très longue ou que Python se suffit à
lui-même ?

Quelqu'un qui s'exprime ainsi n'a effectivement rien à faire sur un forum de
discussions.



Quand on cherche des boulons dans une boulangerie, forcément...




Ben dans la doc de Python, c'est un peu ça : on ne trouve pas ce qu'on y cherche
et on trouve ce qu'on y cherche pas.


Tu comprends vite mais faut t'expliquer longtemps, c'est ça ?



Il est certain que je n'ai pas tes capacités fulgurantes d'assimilation.

Il est probablement possible de programmer du Python sans comprendre, c'est
finalement pas très loin de ce que disait notre bricolo-programmeur Pierre
Maurette. Mon expérience personnelle m'a montré que ce n'était pas forcément un
mauvais investissement que de chercher à comprendre. Et si la doc a démissionné,
cela peut prendre un certain temps en effet. Mais on finit par y arriver.
Avatar
candide
Bruno Desthuilliers a écrit :

+1. La doc officielle + comp.lang.python, ça suffit largement.



Belle démonstration en effet.


Et bien brillant comme tu es, il est clair que ton cas ne va pas
s'appliquer au
commun des débutants. Je pense que d'ici peu tu vas nous créer ton propre
langage si ce n'est déjà fait. A mon avis des gens qui ont des
"facilités" comme
toi n'ont rien à faire sur un forum de discussions



no comment.



Facile.


William connait très bien Python.



Heu oui, ça va, j'avais compris qu'il en avait une très longue.


Et toi, tu ferais peut-être mieux
d'ouvrir un manuel de savoir-vivre ou deux.




C'est ça t'as tout compris, on apprend Python dans la vie et le savoir-vivre
dans les livres.
Avatar
William Dode
On 29-06-2009, candide wrote:

On se demande alors pourquoi tu nous as dit que :

Python est ton premier langage et tu n'as jamais ouvert aucun livre pour l'utiliser.



Je ne le dit tout simplement pas.



Tu cherches à dire quoi : que t'en as une très longue ou que Python se suffit à
lui-même ?

Quelqu'un qui s'exprime ainsi n'a effectivement rien à faire sur un forum de
discussions.



PLONK

--
William Dodé - http://flibuste.net
Informaticien Indépendant
Avatar
candide
William Dode a écrit :
On 29-06-2009, candide wrote:

On se demande alors pourquoi tu nous as dit que :

Python est ton premier langage et tu n'as jamais ouvert aucun livre pour l'utiliser.



Je ne le dit tout simplement pas.




Effectivement, tu ne dis pas exactement ce que j'ai rapporté, je te cite :

Pour ma part c'est le premier langage que j'utilise sans avoir eu besoin
de lire un seul livre ! Le c++ c'est l'inverse, j'ai lu des livres mais
je ne l'ai jamais utilisé !



Mais je crains que tu n'apportes de l'eau à mon moulin. Si tu as appris un ou
plusieurs langages, avec ou sans livre d'ailleurs, et en particulier si tu as
appris le C++ et/ou Java, il n'y a aucun mérite ni aucune difficulté à apprendre
Python y compris dans ses aspects difficiles sans livre juste avec la doc. Et
d'après les messages que je lis de toi sur Usenet (cf. Google), tu as découvert
Python après avoir pratiqué plusieurs années java. Si tu connais le français,
l'italien, l'espagnol et le portugais tu ne devrais pas avoir trop de mal à
apprendre le roumain en tous cas beaucoup moins de mal que si tu ne connais que
le français et encore moins de mal que si tu ne parles que l'anglais.

Donc effectivement ton inaptitude à t'adresser à un public de non spécialistes
se confirme.


Quelqu'un qui s'exprime ainsi n'a effectivement rien à faire sur un forum de
discussions.



PLONK




Chatouilleux sur ce forum. Je n'avais pas vu cet aspect sectaire de Python ...
Avatar
Paul Gaborit
À (at) Mon, 29 Jun 2009 15:16:47 +0200,
candide écrivait (wrote):
Mais je crains que tu n'apportes de l'eau à mon moulin. Si tu as
appris un ou plusieurs langages, avec ou sans livre d'ailleurs, et
en particulier si tu as appris le C++ et/ou Java, il n'y a aucun
mérite ni aucune difficulté à apprendre Python y compris dans ses
aspects difficiles sans livre juste avec la doc. Et d'après les
messages que je lis de toi sur Usenet (cf. Google), tu as découvert
Python après avoir pratiqué plusieurs années java. Si tu connais le
français, l'italien, l'espagnol et le portugais tu ne devrais pas
avoir trop de mal à apprendre le roumain en tous cas beaucoup moins
de mal que si tu ne connais que le français et encore moins de mal
que si tu ne parles que l'anglais.



À mon avis, on peut apprendre pas mal de langages sans connaître grand
chose aux concepts de la programmation. Comme on peut apprendre pas
mal de langues sans rien connaître aux notions de syntaxe, de
grammaire, de sémantique et autres...

La plupart des documentations des langages informatiques supposent, au
moins sur les concepts avancées comme les fermetures, l'objet et
autres, que le lecteur connaît déjà les notions sous-jacentes. Ce qui
suppose qu'il les a apprises dans un cours sur les langages ou qu'il
les a déjà rencontrées dans d'autres langages.

Le problème d'un cours général d'initiation aux concepts de la
programmation est qu'il doit nécessairement reposer sur l'utilisation
de plusieurs langages car aucun langage ne les utilise tous dans toute
leur ampleur...

À ma connaissance, il n'existe pas de méthode assimil pour les
concepts de la linguistique. C'est la même chose pour les concepts de
la programmation...

--
Paul Gaborit - <http://perso.mines-albi.fr/~gaborit/>
1 2 3