diff options
| author | Jan Krňávek <Jan.Krnavek@gmail.com> | 2023-05-08 07:31:58 +0200 |
|---|---|---|
| committer | Jan Krňávek <Jan.Krnavek@gmail.com> | 2023-05-08 07:31:58 +0200 |
| commit | db89d8fa046dfbc2bb64f4c0fdd31a4a3a576875 (patch) | |
| tree | 13a38e445b586ec49e4e98f618368c8a28cfcca5 | |
| parent | 369875736788d932d429d537cc49f8b74429cf40 (diff) | |
| download | perlweeklychallenge-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.raku | 23 | ||||
| -rw-r--r-- | challenge-215/wambash/raku/ch-2.raku | 21 |
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 +} |
