Я заинтересован в понимании нового дизайна языка в Python 3.x .
Мне нравится в Python 2.7 функция map:
Python 2.7.12
In[2]: map(lambda x: x+1, [1,2,3])
Out[2]: [2, 3, 4]
Однако в Python 3.x все изменилось:
Python 3.5.1
In[2]: map(lambda x: x+1, [1,2,3])
Out[2]: <map at 0x4218390>
Я понимаю как, но я не мог найти ссылку на почему. Почему разработчики языка сделали этот выбор, который, на мой взгляд, приносит много боли. Было ли это для того, чтобы разработчики пытались заставить разработчиков придерживаться списка понятий?
ИМО, список естественно рассматривать как Функторы ; и меня почему-то думали так:
fmap :: (a -> b) -> f a -> f b