aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad Sajid Anwar <Mohammad.Anwar@yahoo.com>2024-07-16 11:40:19 +0100
committerGitHub <noreply@github.com>2024-07-16 11:40:19 +0100
commit13b02d273665338cdb2aad14618b342b3a273544 (patch)
treefb0fd10af65222d1d12163412f94aa19377ce357
parentf1533357698083086127e85e17fd8e2a80780e76 (diff)
parent5fd26861466b5d372908fa00b270c16f75527c5e (diff)
downloadperlweeklychallenge-club-13b02d273665338cdb2aad14618b342b3a273544.tar.gz
perlweeklychallenge-club-13b02d273665338cdb2aad14618b342b3a273544.tar.bz2
perlweeklychallenge-club-13b02d273665338cdb2aad14618b342b3a273544.zip
Merge pull request #10430 from andemark/challenge-278
Challenge 278 Solutions (Raku)
-rw-r--r--challenge-278/mark-anderson/raku/ch-1.raku18
-rw-r--r--challenge-278/mark-anderson/raku/ch-2.raku13
2 files changed, 31 insertions, 0 deletions
diff --git a/challenge-278/mark-anderson/raku/ch-1.raku b/challenge-278/mark-anderson/raku/ch-1.raku
new file mode 100644
index 0000000000..023fef428e
--- /dev/null
+++ b/challenge-278/mark-anderson/raku/ch-1.raku
@@ -0,0 +1,18 @@
+#!/usr/bin/env raku
+use Test;
+
+is sort-string("and2 Raku3 cousins5 Perl1 are4"),
+ "Perl and Raku are cousins";
+
+is sort-string("guest6 Python1 most4 the3 popular5 is2 language7"),
+ "Python is the most popular guest language";
+
+is sort-string("Challenge3 The1 Weekly2"),
+ "The Weekly Challenge";
+
+sub sort-string($str is copy)
+{
+ my @i = $str ~~ s:g/ <.digit>+ >> //;
+ my %m is Map = @i Z=> $str.words;
+ ~%m{ 1..%m }
+}
diff --git a/challenge-278/mark-anderson/raku/ch-2.raku b/challenge-278/mark-anderson/raku/ch-2.raku
new file mode 100644
index 0000000000..b2a1176fb1
--- /dev/null
+++ b/challenge-278/mark-anderson/raku/ch-2.raku
@@ -0,0 +1,13 @@
+#!/usr/bin/env raku
+use Test;
+
+is reverse-word("challenge", "e"), "acehllnge";
+is reverse-word("programming", "a"), "agoprrmming";
+is reverse-word("champion", "b"), "champion";
+
+sub reverse-word($str, $char)
+{
+ my $list = $str.split($char, 2);
+ return $str unless $list.elems == 2;
+ return ($list.head.comb, $char).flat.sort.join ~ $list.tail
+}