(Haskell) Applicative Functor
Applicative Functor
Applicative Functor는 하스켈의 Control.Applicative
모듈에서 정의하고 있다.
하스켈의 함수는 알다시피 모두 자동으로 커리된다. a -> b -> c
타입의 함수 f
가 있다고 할 때, 인자 하나를 전달한 f x
의 타입은 b -> c
인 함수가 된다. 함수 역시 Functor의 일종이며, 따라서 함수에 함수를 맵핑하는 것 (이는 함수 합성과 동일하다)도 가능했다. 다만 이 때의 사상되는 함수들은 모두 단인자 함수임에 주목하자.
f x = x + 1
g x = x * 2
fmap g f = g . f = (\x -> g (f x))
그런데 *
처럼 인자 두 개를 받는 함수를 다른 함수에 적용하면 어떻게 될까? 예를 들어 (*)
함수를 Just 3
같은 곳에 맵핑하면 무슨 일이 벌어질까? 더 보기 »(Haskell) Applicative Functor