Beefy Boxes and Bandwidth Generously Provided by pair Networks
No such thing as a small change
 
PerlMonks  

Re: How To: Make An Iterator

by tlm (Prior)
on Apr 25, 2005 at 23:20 UTC ( #451380=note: print w/ replies, xml ) Need Help??


in reply to How To: Make An Iterator

Maybe this is too obvious to be worth mentioning, but under "Why Are Iterators Useful" I would add that they offer a uniform interface for traversal. The underlying data structure may change (and with it the traversal algorithm), but the iterator interface remains constant.

A corollary benefit is that iterators reify the process of traversal, so that one can begin to think of functions that take among their arguments both a data structure and an iterator. For example, one could implement a generalization of map that took three arguments: a data structure, an iterator for the data structure, and some function to be applied to each element of the data structure; and returned the list resulting from applying the function to each element of the data structure in the order prescribed by the iterator.

Update: Added second paragraph.

the lowliest monk


Comment on Re: How To: Make An Iterator

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others drinking their drinks and smoking their pipes about the Monastery: (10)
As of 2015-07-29 06:16 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (260 votes), past polls