Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer

Re: I wrote some clever code - can the comment "defuse" it?

by dws (Chancellor)
on Jun 17, 2003 at 22:04 UTC ( #266659=note: print w/replies, xml ) Need Help??

in reply to I wrote some clever code - can the comment "defuse" it?

I have just come across the first time in a very long while that I feel a need to comment a piece of code.

I wonder how much that need gets reduced after some minor reformatting. My preference is to use the the other form of map, add parenthesis to make the splice more readable, and make the implicit argument to length explicit.

my @letter_seq = map { $curr->[STYLE] . ":" . join(',', splice(@letter, 0, length $_)) } join('', @property{@letter}) =~ s/\(G|D+|L+)/g;
To my eye, that makes the intent a bit clearer.

Then, when I look at what needs commenting, I'm drawn to two things: First, that @letter_seq doesn't contain the same thing as @letter (which I found misleading at first read). Next, the final join. The latter issue can be clarified by a using a carefully named temporary variable.

my $flattened_properties = join('', @property{@letter}); my @letter_seq = map { $curr->[STYLE] . ":" . join('', splice(@letter, 0, length $_)) } $flattened_properties =~ /\G(X|D+|L+)/g;
I find this more readable (YMMV), but still wonder if the algorithm is what you really intend. The properties you're extracting from the collapsed property string don't correspond with the start of the substring of @letter that you're extracting. That part puzzles me.

Replies are listed 'Best First'.
Re^2: I wrote some clever code - can the comment "defuse" it?
by Aristotle (Chancellor) on Jun 17, 2003 at 22:09 UTC
    I did originally have an intermediate $property_map in there.. They do correspond - remember that splice is destructive. Let me rephrase that code a bit. I think I know how to clear it up now.

    Makeshifts last the longest.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://266659]
and the fire pops...

How do I use this? | Other CB clients
Other Users?
Others meditating upon the Monastery: (3)
As of 2017-02-26 15:29 GMT
Find Nodes?
    Voting Booth?
    Before electricity was invented, what was the Electric Eel called?

    Results (375 votes). Check out past polls.