diff options
| author | Jan Krňávek <Jan.Krnavek@gmail.com> | 2021-04-10 14:48:02 +0200 |
|---|---|---|
| committer | Jan Krňávek <Jan.Krnavek@gmail.com> | 2021-04-10 14:48:02 +0200 |
| commit | 204a5a4747c54076f71b2e71935b921de7b48d1e (patch) | |
| tree | dbf55543d768d3c52a193091130fa0fbdc95727c | |
| parent | 0eb9b07380a5109e844229d71368605077a2109f (diff) | |
| download | perlweeklychallenge-club-204a5a4747c54076f71b2e71935b921de7b48d1e.tar.gz perlweeklychallenge-club-204a5a4747c54076f71b2e71935b921de7b48d1e.tar.bz2 perlweeklychallenge-club-204a5a4747c54076f71b2e71935b921de7b48d1e.zip | |
solutions week 107
| -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; +} |
