aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad Sajid Anwar <Mohammad.Anwar@yahoo.com>2025-02-27 20:53:03 +0000
committerGitHub <noreply@github.com>2025-02-27 20:53:03 +0000
commit2a5143d1c08bfae3b574000cf55ed1b26e1c1638 (patch)
tree4eac57d930d5db4927781785567948d62bf05c22
parent5a6e8cdd27bae070cf34d67df8087d1626709501 (diff)
parent4cbdc4545fb401621766f92451541b74688e8b11 (diff)
downloadperlweeklychallenge-club-2a5143d1c08bfae3b574000cf55ed1b26e1c1638.tar.gz
perlweeklychallenge-club-2a5143d1c08bfae3b574000cf55ed1b26e1c1638.tar.bz2
perlweeklychallenge-club-2a5143d1c08bfae3b574000cf55ed1b26e1c1638.zip
Merge pull request #11645 from arnesom/branch-for-challenge-310
Arne Sommer
-rw-r--r--challenge-310/arne-sommer/blog.txt1
-rwxr-xr-xchallenge-310/arne-sommer/raku/arrays-intersection9
-rwxr-xr-xchallenge-310/arne-sommer/raku/ch-1.raku9
-rwxr-xr-xchallenge-310/arne-sommer/raku/ch-2.raku17
-rwxr-xr-xchallenge-310/arne-sommer/raku/sort-odd-even17
5 files changed, 53 insertions, 0 deletions
diff --git a/challenge-310/arne-sommer/blog.txt b/challenge-310/arne-sommer/blog.txt
new file mode 100644
index 0000000000..b2ff4e668d
--- /dev/null
+++ b/challenge-310/arne-sommer/blog.txt
@@ -0,0 +1 @@
+https://raku-musings.com/intersection-sort.html
diff --git a/challenge-310/arne-sommer/raku/arrays-intersection b/challenge-310/arne-sommer/raku/arrays-intersection
new file mode 100755
index 0000000000..15c4101544
--- /dev/null
+++ b/challenge-310/arne-sommer/raku/arrays-intersection
@@ -0,0 +1,9 @@
+#! /usr/bin/env raku
+
+unit sub MAIN ($arrays-as-string, :v(:$verbose));
+
+my @list = $arrays-as-string.split(" ")>>.split(",");
+
+say ": List: { @list.raku }" if $verbose;
+
+say "(" ~ ([(&)] @list).keys.sort.join(",") ~ ")";
diff --git a/challenge-310/arne-sommer/raku/ch-1.raku b/challenge-310/arne-sommer/raku/ch-1.raku
new file mode 100755
index 0000000000..15c4101544
--- /dev/null
+++ b/challenge-310/arne-sommer/raku/ch-1.raku
@@ -0,0 +1,9 @@
+#! /usr/bin/env raku
+
+unit sub MAIN ($arrays-as-string, :v(:$verbose));
+
+my @list = $arrays-as-string.split(" ")>>.split(",");
+
+say ": List: { @list.raku }" if $verbose;
+
+say "(" ~ ([(&)] @list).keys.sort.join(",") ~ ")";
diff --git a/challenge-310/arne-sommer/raku/ch-2.raku b/challenge-310/arne-sommer/raku/ch-2.raku
new file mode 100755
index 0000000000..939f7de3c7
--- /dev/null
+++ b/challenge-310/arne-sommer/raku/ch-2.raku
@@ -0,0 +1,17 @@
+#! /usr/bin/env raku
+
+unit sub MAIN (*@ints where @ints.elems > 1 && all(@ints) ~~ Int,
+ :v(:$verbose));
+
+my @even = @ints.shift;
+my @odd = @ints.shift;
+
+while @ints.elems
+{
+ @even.push: @ints.shift;
+ @odd.push: @ints.shift if @ints.elems;
+}
+
+say ": Even: @even[]\n: Odd: @odd[]" if $verbose;
+
+say "({ (roundrobin(@even.sort, @odd.sort(-*))).flat.join(", ") })";
diff --git a/challenge-310/arne-sommer/raku/sort-odd-even b/challenge-310/arne-sommer/raku/sort-odd-even
new file mode 100755
index 0000000000..939f7de3c7
--- /dev/null
+++ b/challenge-310/arne-sommer/raku/sort-odd-even
@@ -0,0 +1,17 @@
+#! /usr/bin/env raku
+
+unit sub MAIN (*@ints where @ints.elems > 1 && all(@ints) ~~ Int,
+ :v(:$verbose));
+
+my @even = @ints.shift;
+my @odd = @ints.shift;
+
+while @ints.elems
+{
+ @even.push: @ints.shift;
+ @odd.push: @ints.shift if @ints.elems;
+}
+
+say ": Even: @even[]\n: Odd: @odd[]" if $verbose;
+
+say "({ (roundrobin(@even.sort, @odd.sort(-*))).flat.join(", ") })";