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

Re: Re: Re: Re: Re: Re: Re: Think for yourself.

by tilly (Archbishop)
on Oct 30, 2003 at 22:01 UTC ( #303431=note: print w/ replies, xml ) Need Help??


in reply to Re: Re: Re: Re: Re: Re: Think for yourself.
in thread is the use of map in a void context deprecated ?

I say that because now @times has to be interpreted in different ways at different points in your code. A flag for the problem is that now it cannot be given a good name.

When you change units like that, in some parts of your code it might mean seconds, in some minutes. Or perhaps it was minutes and now it is hours. And you can't even clarify what the units are with a good name name because now the name changes at different points in your code.

I only consider this kind of side effect acceptable when the variable, array, etc that is being modified was just assigned. Like this:

my @minutes = @seconds; $_ /= 60 for @minutes;
Now it is OK because it is clear glancing at the code what @minutes is supposed to be. If it wasn't right for a few instructions, that is because you hadn't finished initializing it yet.

The two fundamental principles that I would cite here, Side-effects make code harder to understand. and Variables which can't be given simple descriptive names are not well thought-through.


Comment on Re: Re: Re: Re: Re: Re: Re: Think for yourself.
Download Code
Re: Re: Re: Re: Re: Re: Re: Re: Think for yourself.
by BrowserUk (Pope) on Oct 30, 2003 at 22:38 UTC

    So, if the logic of the program allows you to avoid naming the seconds prior to the convertion, you would find that acceptable?

    my @minutes = map{ $_/60 } source_of_seconds();

    Examine what is said, not who speaks.
    "Efficiency is intelligent laziness." -David Dunham
    "Think for yourself!" - Abigail
    Hooray!

      Not only acceptable, but preferable.

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others scrutinizing the Monastery: (6)
As of 2014-11-28 23:24 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    My preferred Perl binaries come from:














    Results (200 votes), past polls