2016-12-26 2 views

Antwort

4

Ich glaube nicht, dass es im Allgemeinen möglich ist. Angenommen, wir habe es geschafft, es zu schreiben:

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

Welches Verhalten sollte hypotheticalLift (yield b) haben? Vermutlich sollte es das gleiche sein wie yield (b, c) für einige c - aber welche c, und warum?

+0

Sorry, ich verstehe Ihren Standpunkt nicht. Ich habe erwartet, dass 'hypotheticalLift' das zweite Argument des Tupel so wie es ist passieren wird. Es muss nicht 'c' generiert werden, genau wie' Control.Arrow.first'. – utdemir

+3

Das bedeutet, es müsste ein "c" von stromaufwärts für jedes "c" verbrauchen, das stromabwärts gesendet wird. Wenn du ein 'b'' ergeben 'willst, legst du es in eine Warteschlange, die beliebig groß werden kann, bis 'awa' ein' a' ist, das dir ein 'c' als Nebeneffekt gibt, oder erwartest du sofort' 'und das' a' in eine Warteschlange stellen, bis du es brauchst? Wenn Sie ein 'a' erwarten, setzen Sie das begleitende' c' in eine Warteschlange, die beliebig groß werden könnte? – Gurkenglas

+0

@Gurkenglas, oh, jetzt verstehe ich das. Vielen Dank. – utdemir

Verwandte Themen