Hask를 *에 속하는 타입을 으로 가지고 함수를 arrow로 가지는 범주라고 합시다.
Free Theorem에 의하여 타입 f : * → *은 많아야 한 개의 fmap : (forall a, b ㅌ *). (a → b) → (f(a) → f(b))를 가집니다.
즉, Hask → Hask의 함자를 * → *의 타입으로 보내는 맵은 단사입니다.
그런데 타입 f : * → *, g : * → *가 주어졌을 때,
타입 f • g : * → *이 fmap을 가진다면
f와 g 모두 fmap을 가져야 하나요?
여기서 타입 a ㅌ *에 대하여 (f • g)(a) := f(g(a))입니다.
하 범주론 잘하고 싶어요 ㅜㅠ
- dc official App
Yoneda Lemma를 묻고싶은거 같은데 (그걸 그동네에서 뭐 다른 이름으로 부르더라도) 일단 질문이 Haskell-specific이면 몰라도 그게 아닌 일반 범주론 질문이면 일반 범주론의 질문으로 써서 올려라. H를 어떤 fixed category C에서 Sets로 가는 category of all functors라 할때
object A in C에 대해 functor h^A = Hom (A, -) in H를 찾을 수 있는데, (여기서 h^A (X) = Hom(A,X), h^A(f) (g) = f 합성 g( 너가 fmap이라고 적은 애로 생각됨)
그때 F in H(any functor from C to Sets)일때 h^A to F가 F(A)와 1:1 대응한단게 Yoneda lemma인데
뭔가 번역을 해보다 다른 일이 생겨 나가지만 아무튼 질문에 대한 답은 (언제나 그렇듯) not necessarily.. 로 보임. 일반 category질문이면. 나중에 시간나면 다시 돌아오던가 하지.
이분은 모르는 과목이 뭐임
최소한 하스켈이랑 일반 범주론이랑 연결하는 번역문 같은거라도 좀 써보셈..
ns형 예전엔 범주론에 부정적이었던거 같은데 요즘은 범주론 전문가 분위기
지금도 매우 부정적임.. 근데 부정적이라고 안배웠던건 아니니까