Monad (모나드) => flatMap의 파라미터 이름 형태 (값) ->박스 (값) => 값을 받아서 박스 값을 리턴한다. ( 값 ->박스 ) * flatMap 자체는 async 할 수도 sync 할 수도 있다. ( RxJava는.. 이상하다.) Functor 형태 (값) -> (값) => 값을 받아서 값을 리턴한다. ( 값 ->값 ) => 모나드와의 차이 일반적으로 우리가 사용하는 형태는 Functor 이다. * Functor자체는 async 할 수도 sync 할 수도 있다. (역시 RxJava는.. 이상하다.) CPS의 단점 - 끝없는 들여쓰기. - 이해하기 어려움 CPS의 장점 - 모든 제어 흐름을 만들 수 있다. * 코틀린 컴파일러가 컨티뉴에이션과, 상태머신을 만들어낸다.