blob: 38f040e5303aea0f7c257e0326403693d2371645 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
#!/usr/bin/env raku
my $p = slurp;
sub p2 (($on, $tot), ($i, |n)) {
given $i {
when "mul" { return ($on , $tot + [*] $on, |n.list) }
when "do" { return (1 , $tot) }
when "don't" { return (0 , $tot) }
}
};
$p ~~ m:g/ mul\((\d ** 1..3)\,(\d ** 1..3)\) /;
say "silver: ", $/.map({ [*] $_.list }).sum;
$p ~~ m:g/ (mul)\((\d ** 1..3)\,(\d ** 1..3)\) | (do)\(\) | (don\'t)\(\) /;
say "gold: ", ([[&p2]] <1 0>, |$/)[1];
|