My friend edA-qa was recently doing some programming live using the Rust language on twitch. An interesting bit of code came up:
(1..).filter(|n...
For further actions, you may consider blocking this person and/or reporting abuse
Well done! But wouldn't it make even more sense when the whole statement would be executed one item by one. So next() wouldn't gather all the responses of the iteration into an array, but would have the ability to evaluate an expression defining how many times to call it. So, for instance a sum could stop while reached some value.
Thanks for your comment! While this code is lazy, it's still completely synchronous. So once
take
is called, it has to run to completion - callingnext
only processes one item, but I think you meant to saytake
. I wonder if you mean that this code could be implemented asynchronously. I did implement a simple asynchronous reduce for another article:Playing with infinite lists is fun! :)
Very interesting post. A lot of new stuffs which I didn't know. Good job.
Fun Fact of The Day: Carlos Ray Norris iterated over (1..), twice.