aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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;