aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Krňávek <Jan.Krnavek@gmail.com>2023-05-08 07:31:58 +0200
committerJan Krňávek <Jan.Krnavek@gmail.com>2023-05-08 07:31:58 +0200
commitdb89d8fa046dfbc2bb64f4c0fdd31a4a3a576875 (patch)
tree13a38e445b586ec49e4e98f618368c8a28cfcca5
parent369875736788d932d429d537cc49f8b74429cf40 (diff)
downloadperlweeklychallenge-club-db89d8fa046dfbc2bb64f4c0fdd31a4a3a576875.tar.gz
perlweeklychallenge-club-db89d8fa046dfbc2bb64f4c0fdd31a4a3a576875.tar.bz2
perlweeklychallenge-club-db89d8fa046dfbc2bb64f4c0fdd31a4a3a576875.zip
solutions week 215
-rw-r--r--challenge-215/wambash/raku/ch-1.raku23
-rw-r--r--challenge-215/wambash/raku/ch-2.raku21
2 files changed, 44 insertions, 0 deletions
diff --git a/challenge-215/wambash/raku/ch-1.raku b/challenge-215/wambash/raku/ch-1.raku
new file mode 100644
index 0000000000..649ed7754a
--- /dev/null
+++ b/challenge-215/wambash/raku/ch-1.raku
@@ -0,0 +1,23 @@
+#!/usr/bin/env raku
+
+sub odd-one-out (+@words) {
+ @words
+ andthen .grep: { [le] .comb }\
+ andthen $_ but @words.elems - .elems
+}
+
+multi MAIN (Bool :test($)!) {
+ use Test;
+ is odd-one-out(<abc xyz tsu>), <abc xyz>;
+ is odd-one-out(<abc xyz tsu>).Int, 1;
+ is odd-one-out(<rat cab dad>), ();
+ is odd-one-out(<rat cab dad>).Int, 3;
+ is odd-one-out(<x y z>), <x y z>;
+ is odd-one-out(<x y z>).Int, 0;
+ done-testing;
+}
+
+multi MAIN (*@words) {
+ odd-one-out(@words)
+ andthen put .Int => $_
+}
diff --git a/challenge-215/wambash/raku/ch-2.raku b/challenge-215/wambash/raku/ch-2.raku
new file mode 100644
index 0000000000..29cd00be56
--- /dev/null
+++ b/challenge-215/wambash/raku/ch-2.raku
@@ -0,0 +1,21 @@
+#!/usr/bin/env raku
+
+sub number-placement (+@numbers, :$count) {
+ @numbers.join
+ andthen .match: / [^||0] <( 0 <?before (0|$) > /,:g #)> close bracket for emacs
+ andthen $count ≤ .elems
+}
+
+multi MAIN (Bool :test($)!) {
+ use Test;
+ plan 4;
+ is number-placement(1,0,0,0,1,:1count),True;
+ is number-placement(1,0,0,0,1,:2count),False;
+ is number-placement(1,0,0,0,0,0,0,1,:3count),False;
+ is number-placement(1,0,0,0,0,0,0,0,1,:3count),True;
+ done-testing;
+}
+
+multi MAIN (*@numbers, :$count) {
+ say +number-placement @numbers, :$count
+}