aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Krňávek <Jan.Krnavek@gmail.com>2021-12-29 14:30:37 +0100
committerJan Krňávek <Jan.Krnavek@gmail.com>2021-12-29 14:30:37 +0100
commitf5fbc448431feb0c4cf80fae2db84d83e9db1289 (patch)
tree5ae9bbc73e2666bc46a7612fd7dff965738b4afd
parent1305d11624d32adaa1dc3c5cacc0dbb6440201a8 (diff)
downloadperlweeklychallenge-club-f5fbc448431feb0c4cf80fae2db84d83e9db1289.tar.gz
perlweeklychallenge-club-f5fbc448431feb0c4cf80fae2db84d83e9db1289.tar.bz2
perlweeklychallenge-club-f5fbc448431feb0c4cf80fae2db84d83e9db1289.zip
solutions week 145
-rw-r--r--challenge-145/wambash/raku/ch-1.raku16
-rw-r--r--challenge-145/wambash/raku/ch-2.raku25
2 files changed, 41 insertions, 0 deletions
diff --git a/challenge-145/wambash/raku/ch-1.raku b/challenge-145/wambash/raku/ch-1.raku
new file mode 100644
index 0000000000..358cab5ca8
--- /dev/null
+++ b/challenge-145/wambash/raku/ch-1.raku
@@ -0,0 +1,16 @@
+#!/usr/bin/env raku
+
+sub dot-product (@a,@b) {
+ @a Z* @b
+ andthen .sum
+}
+
+multi MAIN (Bool :test($)!) {
+ use Test;
+ is dot-product((1,2,3),(4,5,6)), 32;
+ done-testing;
+}
+
+multi MAIN (:@a,:@b) {
+ say dot-product @a,@b
+}
diff --git a/challenge-145/wambash/raku/ch-2.raku b/challenge-145/wambash/raku/ch-2.raku
new file mode 100644
index 0000000000..f69067c6b4
--- /dev/null
+++ b/challenge-145/wambash/raku/ch-2.raku
@@ -0,0 +1,25 @@
+#!/usr/bin/env raku
+my regex palindrom { .+? <?{ $/ eq $/.flip}> };
+
+
+sub palindromic-tree ($s) {
+ $s
+ andthen .match: &palindrom, :ex
+ andthen .map: *.Str
+ andthen .unique
+}
+
+multi MAIN (Bool :test($)!) {
+ use Test;
+ is palindromic-tree('redivider'),<r redivider e edivide d divid i ivi v>;
+ is palindromic-tree('deific'), <d e i ifi f c>;
+ is palindromic-tree('rotors'), <r rotor o oto t s>;
+ is palindromic-tree('challenge'),<c h a l ll e n g>;
+ is palindromic-tree('champion'), <c h a m p i o n>;
+ is palindromic-tree('christmas'),<c h r i s t m a>;
+ done-testing;
+}
+
+multi MAIN ($s) {
+ say palindromic-tree $s
+}