Functor and Monads
Functor
감싸진 값에 함수를 적용하는 방법
Future, List, Maybe에 있는 map: 감싸져있는 값에 함수를 적용하게 해주는 펑터를 구현한 것
Monads
감싸진 값을 리턴하는 함수에 감싸진 값을 밀어넣는 방법
모나드가 되려면...
타입 생성자가 있어야 한다
모나드가 아닌 값을 받아 모나드를 리턴하는 함수에 모나드로 감싸진 값을 집어넣는 바인드를 지원해야 한다
모나드로 다른 타입을 감싸는 것을 지원해야 한다.
위 특성(타입클래스/인터페이스)들을 만족한다면 그것은 모나드다
ROP에서
T -> Result U
의 시그니처를 가지는 함수들을Result T -> Result U
로 바꿔서 체이닝 해주는것도 모나드의 개념Maybe(Optional) 같은 타입들도 모나드기 때문에
>>=
처럼 바인드를 지원
Last updated
Was this helpful?