Das Pipe & Filter-Architekturmuster ist als eine Kette von Verarbeitungselementen definiert , die so angeordnet sind, dass die Ausgabe jedes Elements die Eingabe des nächsten ist . In jedem Beispiel scheint eine prozess- oder threadübergreifende Verbindung zu berücksichtigen, die über eine Art gemeinsam genutzten Puffer ausgeführt wird.
Mir scheint, dass die Zusammensetzung der Haskell-Funktion dieselbe Aufgabe erfüllt . Können wir sagen, dass es sich um eine Instanz dieses Musters handelt, auch wenn es nur um die Funktionsreihenfolge geht und kein expliziter Puffer als Pipe verwendet wird? Wenn ja, können wir dasselbe für nicht faule Sprache sagen?
CPO
Kategorie? Mein Google-Fu ist schwach :(C
vollständigenP
künstlichenO
Render.Da ist ein Unterschied. Pipes und Filter befassen sich mit Daten und Datenverbindungen, während sich Haskell Function Composition mit erstklassigen Funktionen befasst . Erstklassige Funktionen lassen sich so zusammensetzen, wie es Pipes und Filter nicht tun.
Weiterführende Literatur
Was bedeutet Composability im Kontext der funktionalen Programmierung?
quelle
++
, in der sich die Zusammensetzung befindet.
,++ . ++
würde einen Wert annehmen und diesen Wert inkrementell zurückgeben,++
ist jedoch keine erstklassige Funktion, sondern nimmt nur einen Wert an und gibt einen Wert zurück. Die Kompositionsfunktion ist die erstklassige Funktion, die zwei Funktionen übernimmt und eine zurückgibt.