diff options
| author | Mohammad Sajid Anwar <Mohammad.Anwar@yahoo.com> | 2024-07-16 11:40:19 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-07-16 11:40:19 +0100 |
| commit | 13b02d273665338cdb2aad14618b342b3a273544 (patch) | |
| tree | fb0fd10af65222d1d12163412f94aa19377ce357 | |
| parent | f1533357698083086127e85e17fd8e2a80780e76 (diff) | |
| parent | 5fd26861466b5d372908fa00b270c16f75527c5e (diff) | |
| download | perlweeklychallenge-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.raku | 18 | ||||
| -rw-r--r-- | challenge-278/mark-anderson/raku/ch-2.raku | 13 |
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 +} |
