Nem tudom, lehet, csak bal labbal keltem, de ez szerintem edeskeves.
Nem sokat er az adatfolyamban valo gondolkozas, ha a processzben barhol labon loheted magad egy megfeleloen elhelyezett mutalassal (ezt hogy mondjak egy szoval magyarul?), 5 fuggveny melyen, lehetoleg egy parhuzamosan vegrehajtott utasitashalmazban.
Vereset pisilhetsz, de ha peldaul a keretek olyanok, hogy kotelezoen mutable valtozoid / objektumaid vannak (lasd Java szerializacios frameworkok), a funkcionalis programozas csak mese. Nem veletlen, hogy a Pythont a fonok kifejezetten nem funkcionalis programnyelvnek tartja / szanta, es az sem veletlen, hogy a Javaban nagyon lehatarolt teruleten van csak "adatfolyam", explicit bemenettel-kimenettel.
Raadasul rendesen megtamogatott immutable collection keszlet nelkul a fene megette az egeszet. Mert ugye ugy mukodne a dolog, hogy a fuggvenyed egy collection-t kap parameternek, es ugy modositja, hogy lemasolja a megvaltozott ertekkel. Ha a kedvenc programnyelved es/vagy konyvtarad szerint ez full copyt jelent, akkor igy jartal, te csak ne akarjal itten hipszterkedni, baratom!
Egyebkent Li Haoyi nagy arc, szeretjuk, tiszteljuk, becsuljuk, de nem ezert az irasaert :)
Eddig meg legjobban Rich Hickey fogalmazta meg a lenyeget, a Clojure's Approach to Identity and State cimu orokbecsu eloadasaban, valamikor 10 evvel ezelott (vagy meg nincs annyi? egy eletnek tunik).
Az immutability (vagyis hogy egy dolog mindig "identity", es a state az identityken valo ugralast jelent) szerintem igenis fontosabb, mint az adatfolyam. Ugyanis ha immutable vagy, akkor szuksegszeruen csak bemenet-kimenet valtozasban tudsz gondolkodni, viszont forditva ez nem igaz. Ha mar filozofalgatunk :)