이제 functor 로 일반적인 문제를 해결할 수 있나요?
아직 아닙니다. Functor 는 effectful 프로그램인 f
를 순수 함수인 g
를 합성할 수 있게 해줍니다. 하지만 g
는 오직 하나의 인자를 받은 unary 함수이어야 합니다. 만약 g
가 두 개 이상의 인자를 받는다면 어떻게 될까요?
프로그램 f | 프로그램 g | 합성 |
---|---|---|
pure | pure | g ∘ f |
effectful | pure (unary) | map(g) ∘ f |
effectful | pure (n -ary, n > 1 ) | ? |
이 상황을 해결하려면 무언가 더 필요합니다. 다음 장에서 함수형 프로그래밍에서 또 다른 중요한 추상화인 applicative functor 를 살펴볼 예정입니다.