Ko/adjoint

From HaskellWiki
newtype State s a = State { runState :: s -> (a, s) }

위와 같은 정의를 아래 두 펑터(functor)의 합성으로 볼 수 있다.

  • s ->
  • (, s)

이와 같이 합성이 가능한 두 펑터의 관계를 adjoint라고 한다.

adjoint 관계인 두 펑터를 합성하면 모나드를 만들 수 있다.