diff options
| author | Mark Anderson <mark@andemark.io> | 2025-07-21 13:44:58 +0000 |
|---|---|---|
| committer | Mark Anderson <mark@andemark.io> | 2025-07-21 13:44:58 +0000 |
| commit | e1648be733a48c6c5c8a76149dfcd922a3873b17 (patch) | |
| tree | b87356ab70c41b86d9919a72fd70f9fa3b8499f3 | |
| parent | e0f7e800fc8f1b2cb50896852a0a3ed61980f510 (diff) | |
| download | perlweeklychallenge-club-e1648be733a48c6c5c8a76149dfcd922a3873b17.tar.gz perlweeklychallenge-club-e1648be733a48c6c5c8a76149dfcd922a3873b17.tar.bz2 perlweeklychallenge-club-e1648be733a48c6c5c8a76149dfcd922a3873b17.zip | |
Challenge 331 Solutions (Raku)
| -rw-r--r-- | challenge-331/mark-anderson/raku/ch-1.raku | 11 | ||||
| -rw-r--r-- | challenge-331/mark-anderson/raku/ch-2.raku | 23 |
2 files changed, 34 insertions, 0 deletions
diff --git a/challenge-331/mark-anderson/raku/ch-1.raku b/challenge-331/mark-anderson/raku/ch-1.raku new file mode 100644 index 0000000000..a2bc216d54 --- /dev/null +++ b/challenge-331/mark-anderson/raku/ch-1.raku @@ -0,0 +1,11 @@ +#!/usr/bin/env raku +use Test; + +is last-word("The Weekly Challenge"), 9; +is last-word(" Hello World "), 5; +is last-word("Let's begin the fun"), 3; + +sub last-word($str) +{ + $str.words.tail.chars +} diff --git a/challenge-331/mark-anderson/raku/ch-2.raku b/challenge-331/mark-anderson/raku/ch-2.raku new file mode 100644 index 0000000000..229f003d8c --- /dev/null +++ b/challenge-331/mark-anderson/raku/ch-2.raku @@ -0,0 +1,23 @@ +#!/usr/bin/env raku +use Test; + +ok buddy-strings("fuck", "fcuk"); +nok buddy-strings("love", "love"); +ok buddy-strings("fodo", "food"); +ok buddy-strings("feed", "feed"); + +sub buddy-strings($s, $t) +{ + given $s.comb >>eq<< $t.comb + { + return $s.comb.Bag.values.any >= 2 if .all; + + given .grep(*.not, :k) + { + return False unless .elems == 2; + + return $s.substr(.[0], 1) ~ $s.substr(.[1], 1) eq + $t.substr(.[1], 1) ~ $t.substr(.[0], 1) + } + } +} |
