in reply to Re^3: When should I use map, for?
in thread When should I use map, for?

In your for_s() test, the creation of the extra array may taint the results. What happens to that test when you eliminate the sort, and just create an array of the mod values?

Replies are listed 'Best First'.
taint == result
by fishbot_v2 (Chaplain) on May 19, 2005 at 22:58 UTC

    It does taint the results... but that's just the point. The map itself isn't faster, but it allows you to avoid the creation of the array. In that sense it doesn't taint the results... the taint is the result. If there was a way to do for_s() without the extra array, then my results would be skewed.

    So, perhaps my point, if in fact I have one... is that a pure map is likely never faster than a pure for... but that's not to say that map is never a better solution.

      Ok, i hadn't thought of it that way. I was thinking strictly about the speed of map vs. for, disregarding any other overhead that may occur as a result of how they are used.

      I am no guru when it comes to perl internals. But it seems like the map{} approach is still creating that additional array, but its just hidden away - not named. I say this because (i assume) sort will need the full array that map is creating, and that array is stored somewhere - albeit internally.

      That is something im still a bit uncertain of in regard to this.