aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad S Anwar <Mohammad.Anwar@yahoo.com>2021-04-11 01:47:09 +0100
committerGitHub <noreply@github.com>2021-04-11 01:47:09 +0100
commit476caafd1b20338d63e992610409fabec382ad7b (patch)
tree4295263fff9c2477ed62a946d5ae2274fd44d474
parent8b6820bb7298a4a627c387aa5494742f30598da5 (diff)
parent204a5a4747c54076f71b2e71935b921de7b48d1e (diff)
downloadperlweeklychallenge-club-476caafd1b20338d63e992610409fabec382ad7b.tar.gz
perlweeklychallenge-club-476caafd1b20338d63e992610409fabec382ad7b.tar.bz2
perlweeklychallenge-club-476caafd1b20338d63e992610409fabec382ad7b.zip
Merge pull request #3854 from wambash/challenge-week-107
solutions week 107
-rw-r--r--challenge-107/wambash/raku/ch-1.raku16
-rw-r--r--challenge-107/wambash/raku/ch-2.raku27
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;
+}