Zalezi na tom, co kazda ta funkce vraci. Neznam tenhle konkretni programovaci jazyk, ale jsou v podstate 2 moznosti.
1. Jedna se o nejake Stream API. Tzn zadna z tech funkci nevraci primo pole, ale misto toho vraci instanci nejakyho streamu. Vy pridavate dalsi a dalsi funkce do toho retezu. Pak to vypada takto:
irange vygeneruje prvni prvek 1, posle ho filtru (overi delitelnost 2), pokud nesplnuje, konec; pokud splnuje, provede se transormace, prvek se vlozi do vysledneho vectoru. Tohle opakuj pro kazdy prvek. Celkem jeden cyklus.
2. kazda ta operace vraci rovnou vector<int> nebo nejaky pole. Potom by kazda ta operace sbehla cyklus. Tedy: range vygeneruje pole 1-12 (1. iterace), filtr projede pole a vyhazi polovinu (2. iterace), transformace vynasobi kazdy prvek (3. iterace na mensim poli), vlozit kazdy prvek do noveho pole (4. iterace). Navíc každá operace vytvoří nové pole a staré zahodí.
Tezko rict, co dela vas kod konkretne. Pokud se pipe chova stejne jako treba v bashi, tak bych tipnul na ty 4 iterace. Na druhou stranu muze v tom jazyce pipe znamena to, co treba jave znamena "." (zretezeni prikazu). Kazdopadne at tak nebo tak, mel byste byt schopny si to projit v debugeru...