« first day (2784 days earlier)      last day (1998 days later) » 

12:22
I'll just leave this here:
All feedback is most welcome! I'll use feedback to improve the linked W|C post and make it clearer and more convincing.
12:40
@Szabolcs Is this similar to the inside of NDSolve, where NDSolveProcessEquations makes an NDSolveStateData object, which NDSolve`Iterate updates for a given time, which can then be repeated?
13:20
@ChrisK Yes, I guess it is.
I wonder if those other functions have a similar setup internally that could be exposed
13:51
In principle, the state could be stored as a Mathematica expression. There are two potential problems with this: 1. does it have a performance impact? 2. how does one deal with this when the algorithm is implemented in C, especially when using a library?
It's certainly doable though.
My main point is that the iterator concept is extremely useful, and would benefit Mathematica in combinatorial applications.
 
4 hours later…
18:20
@Szabolcs see Names["GeneralUtilities`*Iterator*"]. I discovered that it was built in already when I was working on making my own. On the other hand having built-ins return iterators would be pretty cool.
 
3 hours later…
21:15
@b3m2a1 Once you make one, how do you use it?
 
1 hour later…
22:40
@Szabolcs Read, e.g.:
zoop=
 Module[{itVar},
  GeneralUtilities`NewIterator["Test",
   itVar=1,
   itVar+=2
   ]
 ];

Read@zoop
The whole infrastructure feels quite experimental as it's not really in the system much. But at least something is there.

« first day (2784 days earlier)      last day (1998 days later) »