[erlang-questions] iterators in Erlang

James Hague <>
Wed Oct 25 15:51:03 CEST 2006


I've recently been brushing up on my Python, because I'm teaching a
class using it.  What's surprising to me is how much modern Python
relies on iterators (an "iterator" being an object that returns one
value at a time in a sequence).  Where lists:seq(1,100000) returns a
large list in erlang, xrange(1,100000+1) in Python generates one value
at a time.  Then you can sum these values with sum(xrange(1,100000+1))
and there's still no intermediate list.

Even more interesting is that iterators have evolved into generators,
which are a poor man's processes).  People are twisting generators to
get cooperative multitasking.

What jumps out at me is how natural this stuff is to do in Erlang, and
yet the iterator/generator style isn't an inherent part of the Erlang
libraries.  I'm not sure if it really *should* be, of course, but I
was curious why Erlang never went down this path.

James



More information about the erlang-questions mailing list