Wie erkennt man den letzten Brocken in einer Haskell Pipe?

8

Ich habe einen kleinen Haskell Pipe , der ausgibt, wie oft er ausgeführt wurde:

%Vor%

Ich möchte in der Lage sein, eine Nachricht auszudrucken und möglicherweise andere Aufgaben auszuführen, nachdem sie den letzten Teil verarbeitet hat. Wie gehe ich dabei vor?

    
Ana 13.12.2015, 22:27
quelle

1 Antwort

3

Ich konnte das schaffen, indem ich den Input-Typ von counterPipe in Maybe String änderte und einen zusätzlichen Nothing einfügte, nachdem die Upstream-Pipe fertig war:

%Vor%

Beispiel Treiber:

%Vor%

Ich denke, dass dieses Muster in etwas wie

abstrahierbar sein sollte %Vor%

damit du schreiben kannst

%Vor%

ohne die ursprüngliche counterPipe -Definition ändern zu müssen; aber ich habe noch nie Pipes vorher benutzt (die obige Lösung wurde nur durch das Betrachten der Typen und das Spielen von Typ-Domino herausgefunden) und daher konnte ich whileJust nicht schreiben (die Signatur ist wahrscheinlich zu allgemein in der Art das kann ich nicht herausfinden).

    
Cactus 14.12.2015, 04:12
quelle

Tags und Links