Monad
Comment
Functor는 기존 문맥의 의미를 보존한다. 위의 예를 가지고 설명하자면, functor는 String형을 Int형으로 포장했으면, 결과도 Int형으로 된다. 다른 type으로 전환하지 못한다.
반면 Monad는 다른 type으로 전환할 수 있다. String형을 Int형으로 포장하여 연산(또는 함수)에 적용한 다음, Double형으로 결과물을 출력할 수 있다.
Monad는 어떻게 보면, C에서 말하는 cast같은 역할을 한다고도 할 수 있다.
Monad Laws
See also
Favorite site
- [추천] 제멋대로 Functor, Monad & Arrow 개념
- Monad는 무엇인가
- 모나드 괴담 - 키노루 - 2015년 11월 14일
- 스칼라 초중급자를 위한 모나드 해설(1)
- [추천] Monad Programming with Scala Future 1
- 1 모나드 이해하기 - WikibooksHaskell
References
-
Monad_Programming_with_Scala_Future.pdf ↩