4 ms·
Depending on your iterator implementation (or, lackthere of), the functional boils down to your first example. For example, Rust iterators are lazily evaluated
by tuetuopay 1y ago
Depending on your iterator implementation (or, lackthere of), the functional boils down to your first example.
For example, Rust iterators are lazily evaluated with early-exits (when filtering data), thus it's your first form but as optimized as possible. OTOH python's map/filter/etc may very well return a full list each time, like with your intermediate. [EDIT] python returns generators, so it's sane.
I would say that any sane language allowing functional-style data manipulation will have them as fast as manual for-loops. (that's why Rust bugs you with .iter()/.collect())
- Capricorn2481 1y agoClojure transducers as well.
- maleldil 1y agoPython map/filter/zip/etc. return generators, so they're lazily evaluated.
- tuetuopay 1y agoThanks, I was not sure, hence the "may". Comment edited :)