diff options
| -rw-r--r-- | challenge-284/wambash/raku/ch-1.raku | 21 | ||||
| -rw-r--r-- | challenge-284/wambash/raku/ch-2.raku | 19 |
2 files changed, 40 insertions, 0 deletions
diff --git a/challenge-284/wambash/raku/ch-1.raku b/challenge-284/wambash/raku/ch-1.raku new file mode 100644 index 0000000000..abdac8eb19 --- /dev/null +++ b/challenge-284/wambash/raku/ch-1.raku @@ -0,0 +1,21 @@ +#!/usr/bin/env raku + +sub lucky-integers (+ints) { + ints + andthen .Bag + andthen .grep: { .key == .value }\ + andthen .max + andthen .?key +} + +multi MAIN (Bool :test($)!) { + use Test; + is lucky-integers(2,2,3,4),2; + is lucky-integers(1, 2, 2, 3, 3, 3),3; + is lucky-integers(1, 1, 1, 3),Nil; + done-testing; +} + +multi MAIN (+ints) { + say lucky-integers(ints) // -1 +} diff --git a/challenge-284/wambash/raku/ch-2.raku b/challenge-284/wambash/raku/ch-2.raku new file mode 100644 index 0000000000..645af3e024 --- /dev/null +++ b/challenge-284/wambash/raku/ch-2.raku @@ -0,0 +1,19 @@ +#!/usr/bin/env raku + +sub relative-sort (@list1,@list2) { + my %sort_by is default(Inf) = @list2.antipairs; + + @list1.sort: { %sort_by{$_} => $_ } +} + +multi MAIN (Bool :test($)!) { + use Test; + is relative-sort((2, 3, 9, 3, 1, 4, 6, 7, 2, 8, 5),(2, 1, 4, 3, 5, 6)), (2, 2, 1, 4, 3, 3, 5, 6, 7, 8, 9); + is relative-sort((3, 3, 4, 6, 2, 4, 2, 1, 3),(1, 3, 2)), (1, 3, 3, 3, 2, 2, 4, 4, 6); + is relative-sort((3, 0, 5, 0, 2, 1, 4, 1, 1),(1, 0, 3, 2)), (1, 1, 1, 0, 0, 3, 2, 4, 5); + done-testing; +} + +multi MAIN ($list1,$list2) { + put relative-sort $list1.comb(/\d+/), $list2.comb(/\d+/) +} |
