aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Krňávek <Jan.Krnavek@gmail.com>2024-02-04 18:17:33 +0100
committerJan Krňávek <Jan.Krnavek@gmail.com>2024-02-04 18:17:33 +0100
commit77971ec449cc415f786f6ac7f0c955ebb762c9ef (patch)
tree950341fb61ad49c1c2c4b4e368b57efcdd141f6f
parent244511026cd069b2617d9ed9cbb951e1c0961358 (diff)
downloadperlweeklychallenge-club-77971ec449cc415f786f6ac7f0c955ebb762c9ef.tar.gz
perlweeklychallenge-club-77971ec449cc415f786f6ac7f0c955ebb762c9ef.tar.bz2
perlweeklychallenge-club-77971ec449cc415f786f6ac7f0c955ebb762c9ef.zip
solutions week 254
-rw-r--r--challenge-254/wambash/raku/ch-1.raku23
-rw-r--r--challenge-254/wambash/raku/ch-2.raku24
2 files changed, 47 insertions, 0 deletions
diff --git a/challenge-254/wambash/raku/ch-1.raku b/challenge-254/wambash/raku/ch-1.raku
new file mode 100644
index 0000000000..4980c00d91
--- /dev/null
+++ b/challenge-254/wambash/raku/ch-1.raku
@@ -0,0 +1,23 @@
+#!/usr/bin/env raku
+
+sub three-power (UInt $n) {
+ 1,3,9 ... $n
+ andthen .tail // -1
+ andthen $_ == $n
+}
+
+multi MAIN (Bool :test($)!) {
+ use Test;
+ is three-power(27), True;
+ is three-power( 1), True;
+ is three-power( 0), False;
+ is three-power(12), False;
+ is three-power(3⁵⁶), True;
+ is three-power(3⁵⁶+1), False;
+ is three-power(3⁵⁶-3), False;
+ done-testing;
+}
+
+multi MAIN (UInt $n) {
+ say three-power $n
+}
diff --git a/challenge-254/wambash/raku/ch-2.raku b/challenge-254/wambash/raku/ch-2.raku
new file mode 100644
index 0000000000..4a59c6084e
--- /dev/null
+++ b/challenge-254/wambash/raku/ch-2.raku
@@ -0,0 +1,24 @@
+#!/usr/bin/env raku
+
+my regex vowels { :i <[aeiou]> }
+
+sub reverse-vowels ($s) {
+ $s
+ andthen .comb: /<vowels>/
+ andthen .reverse
+ andthen $s, |.pairs
+ andthen .reduce: -> $s, $ch { $s.subst: /<vowels>/, $ch.value, :ii, nth => $ch.key + 1 }
+}
+
+multi MAIN (Bool :test($)!) {
+ use Test;
+ is reverse-vowels('Raku'),'Ruka';
+ is reverse-vowels('Uiua'),'Auiu';
+ is reverse-vowels('Perl'),'Perl';
+ is reverse-vowels('Julia'),'Jaliu';
+ done-testing;
+}
+
+multi MAIN ($s) {
+ say reverse-vowels $s
+}