Я зацікавлений в розумінні нового дизайну мови в 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