aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--challenge-305/wambash/raku/ch-1.raku24
-rw-r--r--challenge-305/wambash/raku/ch-2.raku23
2 files changed, 47 insertions, 0 deletions
diff --git a/challenge-305/wambash/raku/ch-1.raku b/challenge-305/wambash/raku/ch-1.raku
new file mode 100644
index 0000000000..f56998526a
--- /dev/null
+++ b/challenge-305/wambash/raku/ch-1.raku
@@ -0,0 +1,24 @@
+#!/usr/bin/env raku
+
+sub binary-prefix (+binary) {
+ binary
+ andthen [\~] binary
+ andthen .map: { :2(.Str).is-prime }
+}
+
+multi MAIN (Bool :test($)!) {
+ use Test;
+ is binary-prefix(1,0,1), (False,True,True);
+ is binary-prefix(1,1,0), (False,True,False);
+ is binary-prefix(1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1), (
+ False, True, True, False, False,
+ True, False, False, False, False,
+ False, False, False, False, False,
+ False, False, False, False, True
+ );
+ done-testing;
+}
+
+multi MAIN (+binary) {
+ put binary-prefix binary
+}
diff --git a/challenge-305/wambash/raku/ch-2.raku b/challenge-305/wambash/raku/ch-2.raku
new file mode 100644
index 0000000000..1f7df7fbf9
--- /dev/null
+++ b/challenge-305/wambash/raku/ch-2.raku
@@ -0,0 +1,23 @@
+#!/usr/bin/env raku
+
+sub alien-dictionary (+words,:@alien) {
+ my %alphabet = @alien.antipairs;
+ words.sort: { %alphabet{ .comb } }
+}
+
+multi MAIN (Bool :test($)!) {
+ use Test;
+ is alien-dictionary(
+ <perl python raku>,
+ :alien<h l a b y d e f g i r k m n o p q j s t u v w x c z>
+ ), <raku python perl>;
+ is alien-dictionary(
+ <the weekly challenge>,
+ :alien<c o r l d a b t e f g h i j k m n p q s w u v x y z>
+ ), <challenge the weekly>;
+ done-testing;
+}
+
+multi MAIN (+words,:$alien) {
+ put alien-dictionary words,:alien($alien.comb)
+}