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>
나는 방법을 이해하지만 이유에 대한 참조를 찾을 수 없습니다. 왜 언어 디자이너들이이 선택을했을까요? 제 생각에는 엄청난 고통을 안겨줍니다. 이것이 목록 이해력을 고수하는 팔 씨름 개발자였습니까?
IMO, 목록은 자연스럽게 Functor로 생각할 수 있습니다 . 그리고 나는 어떻게 든 이런 식으로 생각한다고 생각했습니다.
fmap :: (a -> b) -> f a -> f b