Fate of std::iter::iterate


#1

I’ve just noticed that std::iter::iterate has been deprecated. It seems that the previous deprecation warning was inaccurate in claiming that it had retained its position.

I’m just wondering where I can find discussion of how this decision was reached? For what it’s worth, I’ve been using iterate and has found it to be quite useful.

Does anyone have a good suggestion for where I can find a replacement?


#2

The itertools crate has Unfold: https://bluss.github.io/rust-itertools/doc/itertools/struct.Unfold.html

iterate (which is based on Unfold) could probably be added there as well. CC @bluss


#3

Yes. I adopted unfold after its deprecation in libstd (I can’t find the relevant PR number now). Deliberately chose to wait for iterate to see if it would be championed by a user. A PR is welcome! Itertools is license compatible with rust to allow easy back and forth transfer.


#4

I use it too. It is unfortunate such basic building block for iterators is deprecated.


#5

I think Unfold is a general, nice and very useful tool, so I understand if it is missed. In the long run I hope the “best” things from itertools are adopted by libstd – for example Unfold, .join(), .intersperse(), .foreach().