Hi, So I was seduced by a lot of things Julia had to offer and I found the documentation really fun and helping.
However, I do have some questions, one of them would be: "why iterator functions pass state?". In a more traditional language, you would address an iterator as such: iter.next(), iter.done(), iter.popFront(), iter.front(), iter.empty(), etc... I am curious to know why, in Julia, iterator functions pass around state: init = start(iter) (i, current) = next(iter, init) done = (iter, current) First of all, I am not sure why a method called "start" would exist, given the iterator might be provided by another function, like "ascendingValues(myRedBlackTree)", which would return an iterator for values in ascending order for example. Second, given you have an iterator, why pass its state around instead of just modifying it at every functional call, like traditionally (java, c++, etc...). IMHO, the iterator interface should/could borrow from other programming languages and could be something like: done = isDone(iter) next = next(iter)
