답변:
그것이 일어날 때, 나는 지금 이것에 관한 논문을 쓰고 있습니다. 선물이나 약속에 대해 생각하는 좋은 방법 인 IMO는 시간적 논리에 대한 커리 하워드의 대응 측면에서 볼 수 있습니다.
기본적으로 선물의 기본 개념은 진행중인 계산을 나타내며 동기화 할 수있는 계산을 나타내는 데이터 구조라는 것입니다. 시간적 논리의 관점에서, 이것은 결국 연산자 입니다. 이것은 모나 딕 구조를 갖습니다 :
then
최종 연산자 의 이중 은 항상 시간 논리의 연산자 입니다. 즉, 모든 순간에 를 얻습니다 . Kripke 시간 논리의 의미론 (확장 성을 모델링하는 곳) 에서 미적분학 (람다 용어 / 증거도 모델링 하는)의 범주 의미론으로 전달하면 실제로 여러 가지 방법이 있습니다.
가장 자연스러운 (IMO) 할 일은 를 취하는 것인데, 각 순간에 (잠재적으로 다른) 를 얻을 수 있습니다 . 그런 다음, 콤팩트 한 FRP (Functional Reactive Programming) ( Tarmo Uustalu 및 Varmo Vene가 처음 제안한 )를 선물로 이중에서 모나 딕으로 프로그래밍하는 방식으로 볼 수 있습니다.
그러나, 코람 어 -calculus는 우아함에도 불구하고 스트림을 사용하여 명시 적으로 프로그래밍하는 것에 비해 표현력이 심각하게 손실됩니다. 사용하는 무료 대수학의 범주에는 많은 흥미로운 프로그램을 나타내기에는 너무 적은 전역 요소가있는 것으로 밝혀지기 때문에 특히 고정 점.
Nick Benton과 저는 우리의 논문 Ultrametric Semantics of Reactive Programs 에서 스트림을 사용하여 명시 적으로 프로그래밍한다고 주장했습니다 . 그 후 Alan Jeffrey는 그의 논문 LTL 유형 FRP 에서 LTL을 유형 시스템으로 사용하도록 제안 했습니다. Wolfgang Jeltsch는 그의 논문 에서 선형 시간 시간 논리 및 기능적 반응성 프로그래밍에 대한 공통 범주 시맨틱을 향한 것으로 관찰했습니다 .
Nick과 내가 취하는 관점과 Alan과 Wolfgang이 취하는 관점의 차이는 Birkedal et al.의 합성 보호 영역 이론 의 첫 번째 단계에서 주어진 구조를 비교함으로써 가장 잘 이해됩니다 (IMO). 앨런의 종이와 나무 . 나무의 지형 (크기별로 정렬 된 자연수보다 미리 깎아 낸 것)은 Nick과 내가 사용한 초음파 공간의 범주와 매우 유사하지만 Alan의 범주와 비교하기가 훨씬 쉽습니다 (이산 범주에 대한 사전 깎기). 카테고리.
동시성에 대한 선물에 특히 관심이 있다면 LTL보다는 CTL 을 보는 것이 좋습니다 . AFAIK, 그것은 현재 탐험되지 않은 영토입니다!
편집 : 여기 에 초안 링크가 있습니다. 이 논문은 대부분 형식화 된 FRP를 구현하는 것에 관한 것이므로 언어는 동기식입니다. 그러나 3.3 절의 선물 / 이벤트에 관한 대부분의 논의는 기본적으로 진정한 동시 언어에도 적용되어야합니다.
Try[T]
및 Future[T]
듀얼,하지만 난 꽤 어떤 의미에서 무엇을이 방법을 / 이해하지 않았습니다.