Our regex engine is truly The Little Engine That Could!
Nice idea, tye. Going back to the fundamentals often pays ;-) ...
Here is something similar I worked out for a statistics module that needed tie-adjusted ranks
(a "tie" occurs in a list of numbers if two numbers have exactly the same value - something that most statistics
algorithms don't really like because it violates their assumptions about continuous distributions).
sub ties {
my @val = sort @_;
return () unless @val;
my @delta = (1) x @val - 1;
for (my $i = 1; $i < @val; $i++) {
$delta[$i - 1] = $val[$i] - $val[$i - 1] ? 1 : 0;
}
my @ties = map {length} split /1+/, join '', @delta;
shift @ties unless $ties[0];
return map {++$_} @ties;
}
Christian Lemburg
Brainbench MVP for Perl
http://www.brainbench.com |