aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Davies <kaiepi@outlook.com>2021-10-21 23:23:57 -0300
committerBen Davies <kaiepi@outlook.com>2021-10-21 23:26:15 -0300
commit334e93e8a7635b1f9116174446d9e46eb0e19021 (patch)
tree5b17d5513e6f72e116ad06ec6a0311672a3b0777
parent953fa52e1b18d32137207c85a9274987a7dd7265 (diff)
downloadperlweeklychallenge-club-334e93e8a7635b1f9116174446d9e46eb0e19021.tar.gz
perlweeklychallenge-club-334e93e8a7635b1f9116174446d9e46eb0e19021.tar.bz2
perlweeklychallenge-club-334e93e8a7635b1f9116174446d9e46eb0e19021.zip
Make Ben Davies' challenge 135 task 2 solution 2x as fast
-rw-r--r--challenge-135/ben-davies/raku/ch-2.raku6
1 files changed, 3 insertions, 3 deletions
diff --git a/challenge-135/ben-davies/raku/ch-2.raku b/challenge-135/ben-davies/raku/ch-2.raku
index baf1c6d679..329f9e242d 100644
--- a/challenge-135/ben-davies/raku/ch-2.raku
+++ b/challenge-135/ben-davies/raku/ch-2.raku
@@ -1,9 +1,9 @@
use v6;
+my token digit { <[ 0..9 ]> | <[ B C D F G H J K L M N P Q R S T V W X Y Z ]> }
+my token check { <[ 0..9 ]> }
unit sub MAIN(Str:D $sedol) {
- my constant @digits = |(<0>..<9>), |<B C D F G H J K L M N P Q R S T V W X Y Z>;
my constant @weights = <1 3 1 7 3 9 1>;
- say +do
- $sedol ~~ rx:r/ ^ <digit=@digits> ** 6 <check=[ 0..9 ]> $ / andthen
+ say +do $sedol ~~ rx:r/ ^ <digit> ** 6 <check> $ / andthen
@<digit>.kv.map({ @weights[$^k] * :36(~$^v) }).sum andthen
(10 - $_ % 10) % 10 == $<check>;
}