3 ms·
Iterators claim to be first-class but aren't. And "zero-cost" iterators that are only zero-cost if you don't value your own time spent debugging them. I've been
by _dain_ 4y ago
Iterators claim to be first-class but aren't. And "zero-cost" iterators that are only zero-cost if you don't value your own time spent debugging them. I've been able to crash the compiler when trying to write what in Python is idiomatic "itertools-y" code. And whenever I complain about this, someone pops up to recommend some third party iteration library. Which is part of the problem; I shouldn't need a third party library full of terrifying-looking macros just to write lazy iterators. They don't live up to what the docs promise, which is a real shame.
If they made iterators work how they seem they should work, I would come right back to Nim. It does so many things right but this one thing is a dealbreaker for me. The UFCS is practically begging me to chain lazy iterators together but actually trying it is like stepping on a rake.
- nequo 4y agoWhat have you switched to from Nim? Have you gone back to Python and put up with the speed penalty or chosen something else? Lazy iterators and generators are something I've missed in Rust. Haskell has them just by nature of everything being lazy and I love that. But I've become too familiar with Python, and unless runtime performance is a bottleneck, Haskell hasn't been the path of least resistance for most of my practical problems.
- _dain_ 4y ago> What have you switched to from Nim? Have you gone back to Python and put up with the speed penalty or chosen something else? Just Python and shell scripting. All this stuff is for hobbyist programming not my day job, so I just shelved the stuff that need performance and dusted off some projects that don't. I'm learning Rust at the minute but it's slower going, I'm not at the level where I can make the stuff I want.