Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl: the Markov chain saw
 
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 cooling their heels in the Monastery: (6)
As of 2019-03-18 17:28 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    How do you Carpe diem?





    Results (85 votes). Check out past polls.

    Notices?
    • (Sep 10, 2018 at 22:53 UTC) Welcome new users!