Wzorzec architektoniczny rur i filtrów definiuje się jako łańcuch elementów przetwarzających, ułożonych w taki sposób, że wyjście każdego elementu stanowi wejście następnego . Każdy przykład wydaje się rozważać połączenie międzyprocesowe lub między wątkami realizowane przez pewnego rodzaju bufor współdzielony.
Wydaje mi się, że kompozycja funkcji Haskella wykonuje to samo zadanie. Czy możemy powiedzieć, że jest to instancja tego wzorca, nawet jeśli chodzi tylko o porządkowanie funkcji i nie ma jawnego bufora używanego jako potok? Jeśli tak, to czy możemy powiedzieć to samo w przypadku leniwego języka?
CPO
kategoria? Moje google-fu jest słabe :(C
niekompletnychP
rderów artystycznychO
.Jest różnica. Rury i filtry radzą sobie z danymi i połączeniami danych, podczas gdy Haskell Function Composition zajmuje się pierwszorzędnymi funkcjami . Funkcje pierwszej klasy można komponować w sposób, w jaki nie są to potoki i filtry.
Dalsza lektura
Co oznacza kompozycyjność w kontekście programowania funkcjonalnego?
źródło
++
, gdzie skład jest.
,++ . ++
wziąłby wartość i zwrócił tę wartość inkrementowaną dwukrotnie, ale++
nie jest funkcją pierwszej klasy, przyjmuje tylko wartość i zwraca wartość. Funkcja kompozycji jest funkcją pierwszej klasy, która przyjmuje dwie funkcje i zwraca jedną.