diff options
author | mhsn <mail@mhsn.net> | 2025-09-24 16:41:01 +0100 |
---|---|---|
committer | mhsn <mail@mhsn.net> | 2025-09-24 16:41:03 +0100 |
commit | 64a2466da547932afb1d6a8503a35a0b50554d4a (patch) | |
tree | 9dfc039c54ede638db4b65a2b1e80ffce7ca520e | |
parent | 2252398af6141ed2143d1e439e141454f56a7de5 (diff) | |
download | aoc-64a2466da547932afb1d6a8503a35a0b50554d4a.tar.gz aoc-64a2466da547932afb1d6a8503a35a0b50554d4a.zip |
24-03-raku both
-rwxr-xr-x | 2024/03/raku.raku | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/2024/03/raku.raku b/2024/03/raku.raku new file mode 100755 index 0000000..38f040e --- /dev/null +++ b/2024/03/raku.raku @@ -0,0 +1,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]; |