in reply to Re: Re: Re: extracting corresponding values from another array
in thread extracting corresponding values from another array
Likewise. for(;;) is a dirty C trick that doesnt really belong in perl. Especially when the replacement is easier to understand, less prone to error and most importantly more efficient.Oh, really? A significant part of Perl comes from C, shell, AWK, Ada, BASIC, Python, Fortran, and other languages. Why is for (;;) a dirty C trick that doesn't really belong in Perl, and why isn't for $var (@array) a dirty AWK trick that doesn't belong in Perl? Leave it to the villains of "Harry Potter and the Secret Chamber" to strive for "pure blood".
I also disagree with your other claims. I'm not convinced that the replacement is easier to understand, less prone to error, and more efficient. Let's consider the "dirty C trick":
for (my $i = 0; $i < 1000000; $i += 2) {$sum += $i}
The AWK-like replacement would be:
for my $i (map {$_ * 2} 0 .. 1000000 / 2) {$sum += $i}
I don't think that's easier to understand, or less prone to error. As for efficientcy:
#!/usr/bin/perl use strict; use warnings; use Benchmark; timethese -10, { C => 'my $sum; for (my $i = 0; $i < 1000000; $i += 2) {$sum += + $i}', AWK => 'my $sum; for my $i (map {$_ * 2} 0 .. 1000000 / 2) {$sum + += $i}' }; __END__ Benchmark: running C, AWK for at least 10 CPU seconds... C: 10 wallclock secs (10.66 usr + 0.00 sys = 10.66 CPU) @ 1.41/ +s (n=15) AWK: 10 wallclock secs (10.08 usr + 0.00 sys = 10.08 CPU) @ 0.69/ +s (n=7)
Abigail
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Re: extracting corresponding values from another array
by demerphq (Chancellor) on Dec 03, 2002 at 15:26 UTC | |
by Abigail-II (Bishop) on Dec 03, 2002 at 16:40 UTC | |
by demerphq (Chancellor) on Dec 04, 2002 at 12:36 UTC | |
by Anonymous Monk on Dec 03, 2002 at 16:50 UTC | |
by Abigail-II (Bishop) on Dec 03, 2002 at 17:05 UTC |