I am having a conceptual problem with this question. Or, perhaps more significantly, I suspect this question may itself reflect a conceptual problem.
As I understand it, map is a functional programming construct. One of the tenets of functional programming (at least in "pure" form) is that actions do not have side-effects. Because of this, functional constructs are inherently parallelizable.
In other words:
- for/foreach runs through a list of items sequentially, allowing each one to affect the environment as it goes. This includes alterations to the loop control, such as terminating the loop early with last.
- map operates on all elements of the list independently and these operations should not affect the outside world. It is not a loop per se and this independence, if maintained, potentially allows for such things as handling elements concurrently in different contexts (multithreading/multiple CPUs/distributed systems/etc.) or optimizing the process by handling elements out-of-order. Allowing one element to abort or otherwise affect the handling of other elements violates this independence.
Based on this understanding,
map is the wrong tool for this job, even if the implementation artifacts of current Perl implementations of
map (i.e., behaving as if it's a loop) allow it to be coerced into doing it successfully.
Or have I misunderstood something here?
Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
Read Where should I post X? if you're not absolutely sure you're posting in the right place.
Please read these before you post! —
Posts may use any of the Perl Monks Approved HTML tags:
- a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
| |
For: |
|
Use: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.