Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl: the Markov chain saw

Re^2: map {} list or do {} for list?

by Random_Walk (Prior)
on Apr 11, 2014 at 15:27 UTC ( #1081991=note: print w/replies, xml ) Need Help??

in reply to Re: map {} list or do {} for list?
in thread map {} list or do {} for list?

That was my feeling about map too. But I have seen it used void in a few bits of code recently, and wondered if there was any solid argument for or against, other than it looks wrong :)


Pereant, qui ante nos nostra dixerunt!

Replies are listed 'Best First'.
Re^3: map {} list or do {} for list?
by SuicideJunkie (Vicar) on Apr 11, 2014 at 16:06 UTC

    Well, it certainly still works, but its misleading. You're building a big list of results and then immediately throwing it away.

      Wasn't that optimized not to happen in void context?
      لսႽ ᥲᥒ⚪⟊Ⴙᘓᖇ Ꮅᘓᖇ⎱ Ⴙᥲ𝇋ƙᘓᖇ

        It's a FAQ of its own. Per perl581delta: "map in void context is no longer expensive. map is now context aware, and will not construct a list if called in void context".

        Sorry, I didn't mean to imply that it wasn't optimized away.

        I meant that when reading the code, map says "Hey! Pay attention to the return values of this code block, we're making a list of them."

        It looks like it is well optimised. See my benchmarks, currently at the end of the thread.


        Pereant, qui ante nos nostra dixerunt!

Log In?

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

How do I use this? | Other CB clients
Other Users?
Others examining the Monastery: (5)
As of 2020-11-28 11:43 GMT
Find Nodes?
    Voting Booth?

    No recent polls found