Beefy Boxes and Bandwidth Generously Provided by pair Networks
Problems? Is your data what you think it is?
 
PerlMonks  

Re^5: Overcoming addiction to Lisp

by runrig (Abbot)
on Jun 16, 2005 at 20:20 UTC ( #467427=note: print w/replies, xml ) Need Help??


in reply to Re^4: Overcoming addiction to Lisp
in thread Overcoming addiction to Lisp

...it really sounds like you should be using the builtin list traversal operators...

The code is not traversing a list. It is creating an iterator, and executing a block of code for each item returned by the iterator. You might argue that a foreach{...} is an iterator, but that would require generating the entire list first, which may not be appropriate here. In perl it would be more like:

my $nxt_str = make_strings($n); while (my $str = $nxt_str->()) { #..do stuff with $str }

Replies are listed 'Best First'.
Re^6: Overcoming addiction to Lisp
by Anonymous Monk on Jun 16, 2005 at 20:26 UTC
    Or else you could use a tied array, and that way you'll get to use all the standard array goodies, without reinventing the wheel.
      A tied array would require more infrastructure (i.e. it's more cumbersome to make, which is just MHO and an arguable point), and I don't see that creating a simple iterator is reinventing the wheel, especially seeing as how there's a pretty decent book out with chapters on this very thing.
        Henry Baker sees iterators as a potential sign of weakness...
        The appearance of iterators in an object-oriented language appears to be inversely related to the power of the language's intrinsic control structures. Iterator classes are used for the sole purpose of enumerating the elements of an abstract collection class without revealing its implementation. We find that the availability of higher-order functions and function closures eliminates the need for these ad hoc iterator classes

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://467427]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others imbibing at the Monastery: (3)
As of 2019-10-19 06:50 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    Notices?