연관 챕터
#17
조사 내용
p.170 에 Functor 가 되기 위한 2 가지 조건이 나옵니다.
- 부수효과가 없어야 한다.
- 합성이 가능해야 한다.
이는 다른 책에서 아래와 같이 설명합니다.
- 부수효과가 없어야 한다.
fmap(identity()) == identity() 즉, fmap 에 identity 를 적용한 것과 identity 가 같다.
- 합성이 가능해야 한다.
fmap(f * g) == fmap(f) * fmap(g) 즉, 개별적으로 합성한 것과 합성 후 fmap 한게 동일하다.
여러 책들에서 위 두 가지 조건을 모두 만족하는 fmap 은 Functor 라고 정의할 수 있다고 합니다.
하지만 Functor 의 제 1 법칙을 만족한다면 제 2법칙은 항상 만족함을 증명한다는 글이 있어 정리해 봅니다.