를 β A : = R R A ( R 이 고정 된 곳)에서 f : A → B 에서 β f : β A → β B 를 β로 정의한 연속 통과 변환 (CPS 변환)을 상기하십시오 . 실제로 η A x : = λ r로 정의 된 단위 η A : A → β A 의연속 모나드가 있습니다. 아르 자형
및 곱하기 μ A : β ( β A ) → β A로 정의 된
μ A
이제 이진 맵 를 어떻게 변환 할 수 있는지 생각해 봅시다 . 즉, 우리는 γ f : β A → β B → β C를 원합니다 . 하나는 빨리 γ를 내 놓습니다. 이것은 프로그래밍 관점에서도 의미가 있습니다.
여기 내 질문이 있습니다 : 프로그래밍 관점에서 옳게 보이는 사실 외에 에 대한 더 깊은 이유가 있습니까? 예를 들어, γ 가 의미가 있다고 생각하는 범주 이론적 또는 다른 "이론적"이유가 있습니까? 예를 들어, 모나드에서 γ 를 체계적으로 요리 할 수 있습니까?
-ary 함수 의 CPS 변환에 대한 통찰력을 찾고 있습니다.
이 일반화를 작성하는 방법을 알고 있는데 왜 그런지 알고 싶습니다. 카테고리 이론가들은 내가 요구하는 것을 이해할 것입니다.
—
Andrej Bauer
네,
—
copumpkin
liftA2
제가 제안한 것의 일부였습니다. 에서 "이디엄 괄호"개념 (로 (| f x y z ... |)
번역 pure f <*> x <*> y <*> z <*> ...
) Applicative
은 n-ary 형태의 질문을 얻는 체계적인 방법처럼 보입니다. 나는 CT를 알고 있지만 표준 프로그래밍 용어로 CT에 대해 이야기하는 것이 가장 간단 해 보였습니다. Applicative
이전에 오지 않았다면 , 하 제균 <*>
함수 를 살펴보고 싶을 수도 있습니다 (하스켈의 설명에 지수도 관련되어 있음). 어쨌든, 나는 당신을위한 대답이 없지만 당신이 얻는 것을 더 잘 이해하려고 노력했습니다 :)
Hayo Thielecke의 박사 학위 논문은 CPS의 범주 구조에 있습니다. 아마도 그 대답은 다른 출판물에있을 수도 있습니다. cs.bham.ac.uk/~hxt/research/hayo-thielecke-publications.shtml
—
Dave Clarke
liftM2
또는 일반화 이외의 것을 찾고Applicative
있습니까? 연속 적용 구조에서 직접 설명하는 n-ary 버전 (n-ary 다형성 함수에 대해 이야기 할 수있는 언어로)을 파생시킬 수 있습니다.