aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--challenge-219/barroff/perl/ch-1.pl27
-rw-r--r--challenge-219/barroff/raku/ch-1.raku30
2 files changed, 57 insertions, 0 deletions
diff --git a/challenge-219/barroff/perl/ch-1.pl b/challenge-219/barroff/perl/ch-1.pl
new file mode 100644
index 0000000000..4c5011327b
--- /dev/null
+++ b/challenge-219/barroff/perl/ch-1.pl
@@ -0,0 +1,27 @@
+#!/usr/bin/env perl
+
+use v5.36;
+use strict;
+use warnings;
+
+sub sorted_power ( $k, @numbers ) {
+ my @sn = sort { $a > $b } map( { $_**$k } @numbers );
+ return \@sn;
+}
+
+sub sorted_squares (@numbers) {
+ return sorted_power( 2, @numbers );
+}
+
+#| Run test cases
+sub MAIN() {
+ use Test2::V0 qw( is plan );
+ plan 2;
+
+ is sorted_squares( -2, -1, 0, 3, 4 ), [ 0, 1, 4, 9, 16 ],
+ "works for (-2, -1, 0, 3, 4)";
+ is sorted_squares( 5, -4, -1, 3, 6 ), [ 1, 9, 16, 25, 36 ],
+ "works for (5, -4, -1, 3, 6)";
+}
+
+MAIN();
diff --git a/challenge-219/barroff/raku/ch-1.raku b/challenge-219/barroff/raku/ch-1.raku
new file mode 100644
index 0000000000..43b7cb765a
--- /dev/null
+++ b/challenge-219/barroff/raku/ch-1.raku
@@ -0,0 +1,30 @@
+#!/usr/bin/env raku
+
+use v6.d;
+
+sub sorted-powers(Int:D @numbers where @numbers.elems ≥ 1, Int:D $n --> List) {
+ sort(map({ $_ ** $n }, @numbers)).list;
+}
+
+sub sorted-squares(Int:D @numbers --> List) {
+ sorted-powers(@numbers, 2);
+}
+
+#| Run test cases
+multi sub MAIN('test') {
+ use Test;
+ plan 2;
+
+ is sorted-squares(Array[Int:D].new((-2, -1, 0, 3, 4))),
+ (0, 1, 4, 9, 16), 'works for (-2, -1, 0, 3, 4)';
+ is sorted-squares(Array[Int:D].new((5, -4, -1, 3, 6))),
+ (1, 9, 16, 25, 36), 'works for (5, -4, -1, 3, 6)';
+}
+
+#| Take user provided list like 1 2 3
+multi sub MAIN(*@numbers where @numbers.elems ≥ 1) {
+ my Int @int-numbers = @numbers;
+ say sorted-squares(@int-numbers);
+}
+
+