From 204a5a4747c54076f71b2e71935b921de7b48d1e Mon Sep 17 00:00:00 2001 From: Jan Krňávek Date: Sat, 10 Apr 2021 14:48:02 +0200 Subject: solutions week 107 --- challenge-107/wambash/raku/ch-1.raku | 16 ++++++++++++++++ challenge-107/wambash/raku/ch-2.raku | 27 +++++++++++++++++++++++++++ 2 files changed, 43 insertions(+) create mode 100644 challenge-107/wambash/raku/ch-1.raku create mode 100644 challenge-107/wambash/raku/ch-2.raku diff --git a/challenge-107/wambash/raku/ch-1.raku b/challenge-107/wambash/raku/ch-1.raku new file mode 100644 index 0000000000..ea0647bd0f --- /dev/null +++ b/challenge-107/wambash/raku/ch-1.raku @@ -0,0 +1,16 @@ +sub self-descriptive-numbers () { + 1..* + andthen .map: { slip 0 x $_ .. $_-2 x $_ }\ + andthen .grep: {.comb eq .comb.Bag{ (^.chars)».Str } }\ + andthen .head(3) +} + +multi MAIN () { + .say for self-descriptive-numbers +} + +multi MAIN (Bool :$test!) { + use Test; + is self-descriptive-numbers(), (1210, 2020, 21200); + done-testing; +} diff --git a/challenge-107/wambash/raku/ch-2.raku b/challenge-107/wambash/raku/ch-2.raku new file mode 100644 index 0000000000..58728c1656 --- /dev/null +++ b/challenge-107/wambash/raku/ch-2.raku @@ -0,0 +1,27 @@ +#!/usr/bin/env raku + +sub list-methods ( ::T ) { + T.^methods.map: *.name +} + +sub MAIN (Bool :$test!) { + use Test; + + my $class = class :: { + method new {} + method add {} + method mul {} + method div {} + } + + my $role = role :: { + method new {...} + method add {...} + method mul {...} + method div {...} + } + + is list-methods($class), ; + is list-methods($role ), ; + done-testing; +} -- cgit