9건의 항목
Monad에 대한 것에 대해 탐구합니다.
Monad는 어떻게 정의할 수 있을까? Monad Monad: 다음의 연산들이 정의된 Functor unit: T -> M<T> (return in Haskell) flat: M<M<T>> -> M<T> (join in Haskell) Functor에 unit하고 flat추가한게 모나드다.
그래서 Monad를 왜 사용하는가? 왜 모나드가 유용한가? Improve High-Demensional lift Monad는 Functor의 불만족스러운 부분을 해소해준다. 앞에서 lift2d에 대해 배웠다.
그래서 Monad를 왜 사용하는가? 왜 차원확장 flatLift는 중요할까? 다변수를 받아 모나드를 반환하는 함수도 합성할 수 있다.
어떻게 Monad를 사용해야 하는가? 사용방법 Monad 함수를 직접적으로 사용한다. flatLift, flatLift2d 언어에서 제공하는 Monad 특화된 언어를 사용한다.
Monad에는 어떤 종류가 있는가? Monad란 개념에 대한 의미론적 확장에 대응되는 제네릭 타입.
수학에서의 범주론에 대해 알아보자. 왜 Monad는 이런 형태가 된 것인가? Monad, Category Theory Monad라는 단어는 프로그래밍에서 태동된 단어가 아니다. 수학에서의 범주론에서 유래된 단어이다.
함수형 프로그래밍을 공부하다보면 벽을 한번 마주한다. Functor와 Monad가 그것이다. 이걸 이해하기 위해서 위키피디아에서 집합론?, 범주론? 이런 걸 읽었던 적이 있는 것 같은데 여전히 잘 모르겠다. 이번에는 와닿는 방식으로 이해하는 것을 목표로 한다.
Apple에서 공개한 API인 Combine. 이제 Rx에서 Combine으로 많이 넘어간다고 한다. 무엇을 하는 것인지, 왜 좋은지, 바로 써먹기 위한 팁은 무엇이 있는지 알아본다.