aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHumberto Massa <humbertomassa@gmail.com>2022-06-29 10:17:51 -0300
committerHumberto Massa <humbertomassa@gmail.com>2022-06-29 10:17:51 -0300
commitc13a736507c665794ce400d1fb4c61063a207ecc (patch)
tree44d044b72c47af7346cabb985b9dd71083711b45
parent0c6792736f40aebd4d56398f474ff42a0ec9994f (diff)
downloadperlweeklychallenge-club-c13a736507c665794ce400d1fb4c61063a207ecc.tar.gz
perlweeklychallenge-club-c13a736507c665794ce400d1fb4c61063a207ecc.tar.bz2
perlweeklychallenge-club-c13a736507c665794ce400d1fb4c61063a207ecc.zip
Answer to challenge 171 by @massa
-rw-r--r--challenge-171/massa/raku/ch-1.raku4
-rw-r--r--challenge-171/massa/raku/ch-2.raku19
2 files changed, 23 insertions, 0 deletions
diff --git a/challenge-171/massa/raku/ch-1.raku b/challenge-171/massa/raku/ch-1.raku
new file mode 100644
index 0000000000..1048ac035a
--- /dev/null
+++ b/challenge-171/massa/raku/ch-1.raku
@@ -0,0 +1,4 @@
+use v6;
+my sub proper-divisors(\n) { grep n %% *, ^n }
+my sub is-abundant-odd(\n) { return False if n %% 2; n < [+] proper-divisors n }
+(^∞).hyper.grep(&is-abundant-odd).head(20)».say
diff --git a/challenge-171/massa/raku/ch-2.raku b/challenge-171/massa/raku/ch-2.raku
new file mode 100644
index 0000000000..3b4d1ba41b
--- /dev/null
+++ b/challenge-171/massa/raku/ch-2.raku
@@ -0,0 +1,19 @@
+use v6;
+my sub compose(Code $a, Code $b) {
+ -> |arguments { $a.(|$b.(|arguments)) }
+}
+
+sub plusminus(\a, \b) {
+ return a + b, a - b
+}
+
+sub multdiv(\a, \b) {
+ return a * b, a / b
+}
+
+my $x = compose &plusminus, &multdiv;
+
+plusminus(|multdiv(3, 8)).raku.say;
+$x.(3, 8).raku.say;
+
+compose({ $^a + $^b }, &multdiv).(3, 8).raku.say;