파트 1, 2의 첫번째 장을 읽을 때
그리고 나머지를 읽을 때
첫번째 장은 수학적인 얘기가 없어서 나름 재미도 있었는데, 나머진…… 음…… 전달하려는 게 뭐였을까.
최근에 읽은 건 아니라서, 이제는 막연한 느낌만 남아있을 뿐.
파트 1, 2의 첫번째 장을 읽을 때
그리고 나머지를 읽을 때
첫번째 장은 수학적인 얘기가 없어서 나름 재미도 있었는데, 나머진…… 음…… 전달하려는 게 뭐였을까.
최근에 읽은 건 아니라서, 이제는 막연한 느낌만 남아있을 뿐.
Curry Hodward Isomorphism => 오오, 수학 하고 프로그래밍이 이런관점으로도 이해되는구나! Category이론은 도데체 왜 하는건가? Functor, Applicative, Monad등의 법칙은 왜 있는거지? Semigroup, Monoid는 또 뭐고 Alternative와 MonadPlus는 어떤점이 비슷한건가? Natural Transformation이 Functor를 변환한다는데 무슨말인지, 으음.
"There's no police coming at you when violate monad law." "Monad is monoid in the category of endo-functor", "Applicative is monoid in the category of endo-functor with day-convolution" 이런 농담들은 도데체 뭐가 웃긴거지? CRDT(Conflict-free Replicated Data Type)에 나오는 Join Semi Lattice는 도대체 뭐하는거야?
등등의 것을을 이해하는게 필요한 기초를 다지는데 도움이 되었습니다. 다른말로 당연히도 카테고리 이론은 기초을 다져주는거지요. 이게 프로그래밍에 실용적인지는 문제의 도메인에 따라 결정된다고 생각합니다.
문제의 도메인에 따라 결정된다는 건 적용 범위가 한정적이라는 거임? 그렇다면 좀 슬픈 일이네. 근데 내 알량한 기억엔 범주론은 조립에 관한 거라 무척 범용적이라고 했던 것 같고, 적용하기 힘든 건 현재의 프로그래밍 언어가 범주론을 기반으로 이펙트를 조립하는 데 편리한 타협점을 찾지 못해서 그렇다고 나는 억측하고 있음.