By: Carl Vogel
Re-posted from: http://slendermeans.org/julia-iterators.html
Introduction
I want to spend some time messing about with iterators in Julia. I think they
not only provide a familiar and useful entry point into Julia’s type system and dispatch
model, they’re also interesting in their own right.1 Clever application of iterators can
help to simplify complicated loops, better express their intent, and improve
memory usage.
A word of warning about the code here. Much of the it isn’t idiomatic Julia and I wouldn’t
necessarily recommend using this style in a serious project. I also can’t speak
to its performance vis-a-vis more obvious Julian alternatives. In some cases,
the style of the code examples below may help reduce memory usage, but
performance is not my main concern. (This may be the first blogpost about Julia
unconcerned with speed). Instead, I’m just interested in different ways of
expressing iteration problems.
For anyone who’d like to play along at home, there’s an IJulia notebook of
this material on Github, which can be viewed on nbviewer here.