aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Krňávek <Jan.Krnavek@gmail.com>2021-07-03 09:48:32 +0200
committerJan Krňávek <Jan.Krnavek@gmail.com>2021-07-03 09:48:32 +0200
commit88abb0430daab8e90f71df4ec0e5a28f45a4527c (patch)
tree4af3b327a93841f21b9d6e4a97895a10e166427c
parent43b27153c554a1803df441769d16149997394728 (diff)
downloadperlweeklychallenge-club-88abb0430daab8e90f71df4ec0e5a28f45a4527c.tar.gz
perlweeklychallenge-club-88abb0430daab8e90f71df4ec0e5a28f45a4527c.tar.bz2
perlweeklychallenge-club-88abb0430daab8e90f71df4ec0e5a28f45a4527c.zip
solutions week 119
-rw-r--r--challenge-119/wambash/raku/ch-1.raku19
-rw-r--r--challenge-119/wambash/raku/ch-2.raku16
2 files changed, 35 insertions, 0 deletions
diff --git a/challenge-119/wambash/raku/ch-1.raku b/challenge-119/wambash/raku/ch-1.raku
new file mode 100644
index 0000000000..b47594c4f5
--- /dev/null
+++ b/challenge-119/wambash/raku/ch-1.raku
@@ -0,0 +1,19 @@
+#!/usr/bin/env raku
+
+sub swap-nibbles ($n) {
+ blob8.new($n)
+ andthen .read-ubits(4,4)*16 + .read-ubits(0,4)
+}
+
+multi MAIN (Int $n ) {
+ say swap-nibbles $n;
+}
+
+multi MAIN (Bool :test($)!) {
+ use Test;
+ is swap-nibbles(101), 86;
+ is swap-nibbles(18), 33;
+ is swap-nibbles(255), 255;
+ is swap-nibbles(17), 17;
+ done-testing;
+}
diff --git a/challenge-119/wambash/raku/ch-2.raku b/challenge-119/wambash/raku/ch-2.raku
new file mode 100644
index 0000000000..8a90daa9a6
--- /dev/null
+++ b/challenge-119/wambash/raku/ch-2.raku
@@ -0,0 +1,16 @@
+#!/usr/bin/env raku
+
+sub sequence-without-iter (+@n) {
+ @n
+ andthen 1,2,3 X~ $_
+ andthen .grep: {!/11/}
+}
+
+constant @sequence-without = ((1,2,3), { sequence-without-iter(|$_).cache } ... *).flat;
+multi MAIN (Bool :test($)!) {
+ use Test;
+ is sequence-without-iter(''), <1 2 3>;
+ is sequence-without-iter(1,2,3), <12 13 21 22 23 31 32 33>;
+ is @sequence-without.head(15), (1, 2, 3, 12, 13, 21, 22, 23, 31, 32, 33, 121, 122, 123, 131);
+ done-testing;
+}