aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--challenge-115/mark-anderson/raku/ch-1.raku15
-rw-r--r--challenge-115/mark-anderson/raku/ch-2.raku22
2 files changed, 37 insertions, 0 deletions
diff --git a/challenge-115/mark-anderson/raku/ch-1.raku b/challenge-115/mark-anderson/raku/ch-1.raku
new file mode 100644
index 0000000000..ee38d30e86
--- /dev/null
+++ b/challenge-115/mark-anderson/raku/ch-1.raku
@@ -0,0 +1,15 @@
+#!/usr/bin/env raku
+
+use Test;
+plan 2;
+
+is string-chain(<abc dea cd>), 1;
+is string-chain(<ade cbd fgh>), 0;
+
+sub string-chain(@words)
+{
+ my $heads = bag @words.map(*.substr(0, 1));
+ my $tails = bag @words.map(*.substr(*-1));
+
+ +($heads eqv $tails)
+}
diff --git a/challenge-115/mark-anderson/raku/ch-2.raku b/challenge-115/mark-anderson/raku/ch-2.raku
new file mode 100644
index 0000000000..11149c9032
--- /dev/null
+++ b/challenge-115/mark-anderson/raku/ch-2.raku
@@ -0,0 +1,22 @@
+#!/usr/bin/env raku
+
+use Test;
+plan 3;
+
+is largest-multiple(<1 0 2 6>), 6210;
+is largest-multiple(<1 4 2 8>), 8412;
+is largest-multiple(<4 1 7 6>), 7614;
+
+sub largest-multiple(@nums is copy)
+{
+ @nums .= sort({ $^b <=> $^a });
+ my $i = @nums.first(* %% 2, :end, :k);
+
+ if $i
+ {
+ my $tail = @nums.splice($i, 1);
+ return @nums.join ~ $tail;
+ }
+
+ return q{};
+}