summaryrefslogtreecommitdiff
path: root/2024
diff options
context:
space:
mode:
authormhsn <mail@mhsn.net>2025-09-24 16:41:01 +0100
committermhsn <mail@mhsn.net>2025-09-24 16:41:03 +0100
commit64a2466da547932afb1d6a8503a35a0b50554d4a (patch)
tree9dfc039c54ede638db4b65a2b1e80ffce7ca520e /2024
parent2252398af6141ed2143d1e439e141454f56a7de5 (diff)
downloadaoc-64a2466da547932afb1d6a8503a35a0b50554d4a.tar.gz
aoc-64a2466da547932afb1d6a8503a35a0b50554d4a.zip
24-03-raku both
Diffstat (limited to '2024')
-rwxr-xr-x2024/03/raku.raku17
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];