aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad Sajid Anwar <Mohammad.Anwar@yahoo.com>2024-05-13 00:26:35 +0100
committerGitHub <noreply@github.com>2024-05-13 00:26:35 +0100
commitd93ae1050ee585b55bf817f7ea15641de5879ae8 (patch)
tree7a40c47c99e8e24adc6ff258bd82eb5c771adb1a
parent934b3b52cde29c7a38d216e1874be5c98ed0c69b (diff)
parente3ca64c61c8818bd8f370981fe2099ad23145a28 (diff)
downloadperlweeklychallenge-club-d93ae1050ee585b55bf817f7ea15641de5879ae8.tar.gz
perlweeklychallenge-club-d93ae1050ee585b55bf817f7ea15641de5879ae8.tar.bz2
perlweeklychallenge-club-d93ae1050ee585b55bf817f7ea15641de5879ae8.zip
Merge pull request #10075 from arnesom/branch-for-challenge-268
Arne Sommer
-rw-r--r--challenge-268/arne-sommer/blog.txt1
-rwxr-xr-xchallenge-268/arne-sommer/raku/ch-1.raku18
-rwxr-xr-xchallenge-268/arne-sommer/raku/ch-2.raku20
-rwxr-xr-xchallenge-268/arne-sommer/raku/magic-number18
-rwxr-xr-xchallenge-268/arne-sommer/raku/number-game20
5 files changed, 77 insertions, 0 deletions
diff --git a/challenge-268/arne-sommer/blog.txt b/challenge-268/arne-sommer/blog.txt
new file mode 100644
index 0000000000..6f72301b3e
--- /dev/null
+++ b/challenge-268/arne-sommer/blog.txt
@@ -0,0 +1 @@
+https://raku-musings.com/numerous-numbers.html
diff --git a/challenge-268/arne-sommer/raku/ch-1.raku b/challenge-268/arne-sommer/raku/ch-1.raku
new file mode 100755
index 0000000000..c057392b31
--- /dev/null
+++ b/challenge-268/arne-sommer/raku/ch-1.raku
@@ -0,0 +1,18 @@
+#! /usr/bin/env raku
+
+unit sub MAIN ($x, $y, :v(:$verbose));
+
+my @x = $x.words>>.Int.sort; ## Numeric
+my @y = $y.words>>.Int.sort;
+
+die "Not the same length" unless @x.elems == @y.elems;
+
+my @pairs = @x Z @y;
+
+say ":Pairs: { @pairs.raku }" if $verbose;
+
+my @diff = @pairs.map({ $_[0] - $_[1] });
+
+say ":Diff: { @diff.join(", ") }" if $verbose;
+
+say ( [==] @diff ) ?? @diff[0].abs !! 'error';
diff --git a/challenge-268/arne-sommer/raku/ch-2.raku b/challenge-268/arne-sommer/raku/ch-2.raku
new file mode 100755
index 0000000000..851142ccff
--- /dev/null
+++ b/challenge-268/arne-sommer/raku/ch-2.raku
@@ -0,0 +1,20 @@
+#! /usr/bin/env raku
+
+unit sub MAIN (*@ints where @ints.elems > 1 && @ints.elems %% 2 && all(@ints) ~~ Int, :v(:$verbose));
+
+my @sorted = @ints.sort;
+my @new;
+
+while @sorted
+{
+ print ":Sorted: { @sorted.join(",")}" if $verbose;
+
+ my $a = @sorted.shift;
+ my $b = @sorted.shift;
+
+ say " -> pick $a,$b -> add $b,$a" if $verbose;
+
+ @new.append: $b, $a;
+}
+
+say "({ @new.join(", ") })";
diff --git a/challenge-268/arne-sommer/raku/magic-number b/challenge-268/arne-sommer/raku/magic-number
new file mode 100755
index 0000000000..c057392b31
--- /dev/null
+++ b/challenge-268/arne-sommer/raku/magic-number
@@ -0,0 +1,18 @@
+#! /usr/bin/env raku
+
+unit sub MAIN ($x, $y, :v(:$verbose));
+
+my @x = $x.words>>.Int.sort; ## Numeric
+my @y = $y.words>>.Int.sort;
+
+die "Not the same length" unless @x.elems == @y.elems;
+
+my @pairs = @x Z @y;
+
+say ":Pairs: { @pairs.raku }" if $verbose;
+
+my @diff = @pairs.map({ $_[0] - $_[1] });
+
+say ":Diff: { @diff.join(", ") }" if $verbose;
+
+say ( [==] @diff ) ?? @diff[0].abs !! 'error';
diff --git a/challenge-268/arne-sommer/raku/number-game b/challenge-268/arne-sommer/raku/number-game
new file mode 100755
index 0000000000..851142ccff
--- /dev/null
+++ b/challenge-268/arne-sommer/raku/number-game
@@ -0,0 +1,20 @@
+#! /usr/bin/env raku
+
+unit sub MAIN (*@ints where @ints.elems > 1 && @ints.elems %% 2 && all(@ints) ~~ Int, :v(:$verbose));
+
+my @sorted = @ints.sort;
+my @new;
+
+while @sorted
+{
+ print ":Sorted: { @sorted.join(",")}" if $verbose;
+
+ my $a = @sorted.shift;
+ my $b = @sorted.shift;
+
+ say " -> pick $a,$b -> add $b,$a" if $verbose;
+
+ @new.append: $b, $a;
+}
+
+say "({ @new.join(", ") })";