2016-12-26 1 views

답변

4

일반적으로 가능하지 않다고 생각합니다. 우리가 그것을 쓸 수 있었다고 가정 해보자.

hypotheticalLift :: Pipe a b m r -> Pipe (a, c) (b, c) m r 

hypotheticalLift (yield b)에는 어떤 행동이 필요합니까? 아마도 c에 대해 yield (b, c)과 같아야하지만 어느 쪽이 c이고 그 이유는 무엇일까요?

+0

죄송합니다. 귀하의 의견을 이해할 수 없습니다. 나는'hypotheticalLift'가 터플의 두 번째 인수를 그대로 전달할 것으로 기대하고있었습니다. 'Control.Arrow.first'처럼'c'를 생성 할 필요가 없습니다. – utdemir

+3

즉, 하류로 보내지는 각'c '에 대해 업스트림에서 하나의'c '를 소비해야한다는 것을 의미합니다. 'b '를'yield'하고 싶을 때'a'가'c'를 부작용으로 줄 때까지 임의로 커질 수있는 큐에 넣으시겠습니까? 아니면 즉시 기다리고 있습니까? '그리고'a'를 여러분이 필요할 때까지 대기열에 넣으시겠습니까? ''a'를''기다리면,''c''를 임의로 커질 수있는 큐에 넣으시겠습니까? – Gurkenglas

+0

@ Gurkenglas, 오, 이제 그 점을 이해합니다. 고맙습니다. – utdemir