diff options
| -rw-r--r-- | challenge-107/wambash/raku/ch-1.raku | 16 | ||||
| -rw-r--r-- | challenge-107/wambash/raku/ch-2.raku | 27 |
2 files changed, 43 insertions, 0 deletions
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), <new add mul div BUILDALL>; + is list-methods($role ), <new add mul div>; + done-testing; +} |
