diff options
| author | drbaggy <js5@sanger.ac.uk> | 2021-05-05 02:27:08 +0100 |
|---|---|---|
| committer | drbaggy <js5@sanger.ac.uk> | 2021-05-05 02:27:08 +0100 |
| commit | 95dcbfcf8f6af38ac4039544183d8b03abffc716 (patch) | |
| tree | a4cb337698c506c995cbc0b31481e9ba14dff595 | |
| parent | 4a4113524272a28555f87d338379876cdb803497 (diff) | |
| download | perlweeklychallenge-club-95dcbfcf8f6af38ac4039544183d8b03abffc716.tar.gz perlweeklychallenge-club-95dcbfcf8f6af38ac4039544183d8b03abffc716.tar.bz2 perlweeklychallenge-club-95dcbfcf8f6af38ac4039544183d8b03abffc716.zip | |
fix dnf so it is quicker by making it a 1-liner return.... (removes an intermediate variable)
| -rw-r--r-- | challenge-111/james-smith/perl/ch-1.pl | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/challenge-111/james-smith/perl/ch-1.pl b/challenge-111/james-smith/perl/ch-1.pl index 02fa3c878a..4635c73bbc 100644 --- a/challenge-111/james-smith/perl/ch-1.pl +++ b/challenge-111/james-smith/perl/ch-1.pl @@ -110,11 +110,12 @@ cmpthese(10_000, { sub find_val_dnf { my($v,$m) = @_; - return 0 if $v < $m->[0][0] || $v > $m->[4][4]; - my $i = $v < $m->[3][0] - ? ( $v < $m->[1][0] ? 0 : $v < $m->[2][0] ? 1 : 2 ) - : ( $v < $m->[4][0] ? 3 : 4 ); - return 0 + grep { $v == $_ } @{$m->[$i]}; + return $v < $m->[0][0] || $v > $m->[4][4] + ? 0 + : 0 + grep { $v == $_ } @{$m->[ $v < $m->[3][0] + ? ( $v < $m->[1][0] ? 0 : $v < $m->[2][0] ? 1 : 2 ) + : ( $v < $m->[4][0] ? 3 : 4 ) + ]}; } sub flatten { |
