aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArne Sommer <arne@bbop.org>2025-09-10 20:38:25 +0200
committerArne Sommer <arne@bbop.org>2025-09-10 20:38:25 +0200
commit04dc06c3e8c247a89034b327d4a74d3d62621f67 (patch)
tree7ebf8058c0258738e4105ca9b2bcdb864e20d583
parentcbd90aa6a20f143f15329c13fdfa425824709915 (diff)
downloadperlweeklychallenge-club-04dc06c3e8c247a89034b327d4a74d3d62621f67.tar.gz
perlweeklychallenge-club-04dc06c3e8c247a89034b327d4a74d3d62621f67.tar.bz2
perlweeklychallenge-club-04dc06c3e8c247a89034b327d4a74d3d62621f67.zip
week 338 Arne Sommer
-rw-r--r--challenge-338/arne-sommer/blog.txt1
-rwxr-xr-xchallenge-338/arne-sommer/raku/ch-1.raku15
-rwxr-xr-xchallenge-338/arne-sommer/raku/ch-2.raku12
-rwxr-xr-xchallenge-338/arne-sommer/raku/highest-row15
-rwxr-xr-xchallenge-338/arne-sommer/raku/max-distance12
5 files changed, 55 insertions, 0 deletions
diff --git a/challenge-338/arne-sommer/blog.txt b/challenge-338/arne-sommer/blog.txt
new file mode 100644
index 0000000000..8c55eeb7db
--- /dev/null
+++ b/challenge-338/arne-sommer/blog.txt
@@ -0,0 +1 @@
+https://raku-musings.com/row-distance.html \ No newline at end of file
diff --git a/challenge-338/arne-sommer/raku/ch-1.raku b/challenge-338/arne-sommer/raku/ch-1.raku
new file mode 100755
index 0000000000..aa5cacd248
--- /dev/null
+++ b/challenge-338/arne-sommer/raku/ch-1.raku
@@ -0,0 +1,15 @@
+#! /usr/bin/env raku
+
+unit sub MAIN ($matrix, :v(:$verbose));
+
+my @matrix = $matrix.split("|")>>.words>>.Numeric;
+
+die "Uneven row length" unless [==] @matrix>>.elems;
+
+die "Non numeric value(s) in the matrix" unless all(@matrix[*;*]) ~~ Numeric;
+
+my @sum = @matrix>>.sum;
+
+say ": Row sums: { @sum.join(",") }" if $verbose;
+
+say @sum.max;
diff --git a/challenge-338/arne-sommer/raku/ch-2.raku b/challenge-338/arne-sommer/raku/ch-2.raku
new file mode 100755
index 0000000000..c14dbcc8f5
--- /dev/null
+++ b/challenge-338/arne-sommer/raku/ch-2.raku
@@ -0,0 +1,12 @@
+#! /usr/bin/env raku
+
+unit sub MAIN ($arr1, $arr2);
+
+my @arr1 = $arr1.words>>.Int;
+my @arr2 = $arr2.words>>.Int;
+
+die "Non integer value(s) in arr1" unless all(@arr1) ~~ Int;
+die "Non integer value(s) in arr2" unless all(@arr2) ~~ Int;
+
+say ((@arr1.max - @arr2.min).abs,
+ (@arr2.max - @arr1.min).abs).max;
diff --git a/challenge-338/arne-sommer/raku/highest-row b/challenge-338/arne-sommer/raku/highest-row
new file mode 100755
index 0000000000..aa5cacd248
--- /dev/null
+++ b/challenge-338/arne-sommer/raku/highest-row
@@ -0,0 +1,15 @@
+#! /usr/bin/env raku
+
+unit sub MAIN ($matrix, :v(:$verbose));
+
+my @matrix = $matrix.split("|")>>.words>>.Numeric;
+
+die "Uneven row length" unless [==] @matrix>>.elems;
+
+die "Non numeric value(s) in the matrix" unless all(@matrix[*;*]) ~~ Numeric;
+
+my @sum = @matrix>>.sum;
+
+say ": Row sums: { @sum.join(",") }" if $verbose;
+
+say @sum.max;
diff --git a/challenge-338/arne-sommer/raku/max-distance b/challenge-338/arne-sommer/raku/max-distance
new file mode 100755
index 0000000000..c14dbcc8f5
--- /dev/null
+++ b/challenge-338/arne-sommer/raku/max-distance
@@ -0,0 +1,12 @@
+#! /usr/bin/env raku
+
+unit sub MAIN ($arr1, $arr2);
+
+my @arr1 = $arr1.words>>.Int;
+my @arr2 = $arr2.words>>.Int;
+
+die "Non integer value(s) in arr1" unless all(@arr1) ~~ Int;
+die "Non integer value(s) in arr2" unless all(@arr2) ~~ Int;
+
+say ((@arr1.max - @arr2.min).abs,
+ (@arr2.max - @arr1.min).abs).max;