Estoy interesado en la comprensión del nuevo lenguaje de diseño de Python 3.x .
Disfruto, en Python 2.7, la función map:
Python 2.7.12
In[2]: map(lambda x: x+1, [1,2,3])
Out[2]: [2, 3, 4]
Sin embargo, en Python 3.x las cosas han cambiado:
Python 3.5.1
In[2]: map(lambda x: x+1, [1,2,3])
Out[2]: <map at 0x4218390>
Entiendo el cómo, pero no pude encontrar una referencia al por qué. ¿Por qué los diseñadores de lenguajes tomaron esta decisión, que, en mi opinión, presenta un gran dolor? ¿Fue esto para luchar con los desarrolladores al ceñirse a las listas de comprensión?
OMI, la lista se puede pensar naturalmente como Functors ; y de alguna manera se ha pensado que pienso de esta manera:
fmap :: (a -> b) -> f a -> f b