Skip to content

Monad

Comment

Functor는 기존 문맥의 의미를 보존한다. 위의 예를 가지고 설명하자면, functor는 String형을 Int형으로 포장했으면, 결과도 Int형으로 된다. 다른 type으로 전환하지 못한다.

반면 Monad는 다른 type으로 전환할 수 있다. String형을 Int형으로 포장하여 연산(또는 함수)에 적용한 다음, Double형으로 결과물을 출력할 수 있다.

Monad는 어떻게 보면, C에서 말하는 cast같은 역할을 한다고도 할 수 있다.

Monad Laws

See also

Favorite site

References


  1. Monad_Programming_with_Scala_Future.pdf