
On Sun, Jan 18, 2009 at 8:14 PM, Sebastian Redl <sebastian.redl@getdesigned.at> wrote: [snip]
Also, lazy lists are really an idiom from languages that are very comfortable with lists, i.e. mostly functional languages (Haskell, for example). The same idiom is, I believe, really not as practical in C++ and other imperative languages. Modern C++ uses iterator ranges as the primary concept for generic handling of finite and infinite sequences, and there already are function-backed input iterators. The second concept used is input streams.
There are already function-backed input iterators in Boost? I know there are function-backed output iterators, but not function-backed input iterators. I myself have been looking for something in Boost that would invoke a function when an iterator is dereferenced and the result of which would be a value. There are two types that I'm thinking of: a forward iterator that invoked a nullary function and returned the result, and a random access iterator that forwarded the base+offset to the stored function. Is there interest in these two types? -- Dean Michael C. Berris Software Engineer, Friendster, Inc.