Je cherche à comprendre le nouveau langage de conception de Python 3.x.
J'aime, en Python 2.7, la fonction map
:
Python 2.7.12
In[2]: map(lambda x: x+1, [1,2,3])
Out[2]: [2, 3, 4]
Toutefois, en Python 3.x, les choses ont changé:
Python 3.5.1
In[2]: map(lambda x: x+1, [1,2,3])
Out[2]: <map at 0x4218390>
Je comprends le comment, mais je ne pouvais pas trouver une référence à la raison. Pourquoi la langue concepteurs de faire ce choix, ce qui, à mon avis, présente une grande partie de la douleur. Etait-ce bras de fer développeurs à s'interprétations de la liste?
OMI, la liste peut être naturellement pensé que les Foncteurs; et j'ai été en quelque sorte été pensé pour penser de cette façon:
fmap :: (a -> b) -> f a -> f b