aboutsummaryrefslogtreecommitdiff
path: root/challenge-307
diff options
context:
space:
mode:
authorrir <rirans@comcast.net>2025-02-09 23:21:34 +0000
committerGitHub <noreply@github.com>2025-02-09 23:21:34 +0000
commit6f080fc3c36c5dd16f6ffb1b6e643fac6babc84b (patch)
tree5b7d8fa04b96268238b7b6ce520a76649b4d8be2 /challenge-307
parent9380fe143cc5ce16d97cd6fcc2f2f8d18151e4d3 (diff)
parent20203255d0f29f170a3c0cd55a737c0b2981597f (diff)
downloadperlweeklychallenge-club-6f080fc3c36c5dd16f6ffb1b6e643fac6babc84b.tar.gz
perlweeklychallenge-club-6f080fc3c36c5dd16f6ffb1b6e643fac6babc84b.tar.bz2
perlweeklychallenge-club-6f080fc3c36c5dd16f6ffb1b6e643fac6babc84b.zip
Merge branch 'manwar:master' into work
Diffstat (limited to 'challenge-307')
-rw-r--r--challenge-307/arne-sommer/blog.txt1
-rwxr-xr-xchallenge-307/arne-sommer/raku/ch-1.raku23
-rwxr-xr-xchallenge-307/arne-sommer/raku/ch-2.raku30
-rwxr-xr-xchallenge-307/arne-sommer/raku/check-order23
-rwxr-xr-xchallenge-307/arne-sommer/raku/find-anagrams30
-rw-r--r--challenge-307/athanasius/perl/ch-1.pl172
-rw-r--r--challenge-307/athanasius/perl/ch-2.pl200
-rw-r--r--challenge-307/athanasius/raku/ch-1.raku164
-rw-r--r--challenge-307/athanasius/raku/ch-2.raku183
-rw-r--r--challenge-307/bob-lied/README6
-rw-r--r--challenge-307/bob-lied/perl/ch-1.pl76
-rw-r--r--challenge-307/bob-lied/perl/ch-2.pl128
-rw-r--r--challenge-307/dave-jacoby/perl/ch-1.pl30
-rw-r--r--challenge-307/dave-jacoby/perl/ch-1.py52
-rw-r--r--challenge-307/dave-jacoby/perl/ch-2.pl37
-rw-r--r--challenge-307/dave-jacoby/perl/ch-2.py35
-rw-r--r--challenge-307/deadmarshal/blog.txt1
-rw-r--r--challenge-307/deadmarshal/java/Ch1.java21
-rw-r--r--challenge-307/deadmarshal/java/Ch2.java24
-rw-r--r--challenge-307/deadmarshal/modula-3/Ch1/src/Ch1.m338
-rw-r--r--challenge-307/deadmarshal/modula-3/Ch1/src/m3makefile4
-rw-r--r--challenge-307/deadmarshal/modula-3/Ch2/src/Ch2.m332
-rw-r--r--challenge-307/deadmarshal/modula-3/Ch2/src/m3makefile5
-rw-r--r--challenge-307/deadmarshal/perl/ch-1.pl14
-rw-r--r--challenge-307/deadmarshal/perl/ch-2.pl15
-rw-r--r--challenge-307/deadmarshal/zig/ch1/build.zig91
-rw-r--r--challenge-307/deadmarshal/zig/ch1/build.zig.zon72
-rw-r--r--challenge-307/deadmarshal/zig/ch1/src/main.zig60
-rw-r--r--challenge-307/deadmarshal/zig/ch1/src/root.zig10
-rw-r--r--challenge-307/deadmarshal/zig/ch2/build.zig91
-rw-r--r--challenge-307/deadmarshal/zig/ch2/build.zig.zon72
-rw-r--r--challenge-307/deadmarshal/zig/ch2/src/main.zig46
-rw-r--r--challenge-307/deadmarshal/zig/ch2/src/root.zig10
-rw-r--r--challenge-307/jaldhar-h-vyas/blog.txt1
-rwxr-xr-xchallenge-307/jaldhar-h-vyas/perl/ch-1.pl15
-rwxr-xr-xchallenge-307/jaldhar-h-vyas/perl/ch-2.pl12
-rwxr-xr-xchallenge-307/jaldhar-h-vyas/raku/ch-1.raku16
-rwxr-xr-xchallenge-307/jaldhar-h-vyas/raku/ch-2.sh3
-rw-r--r--challenge-307/jeanluc2020/blog-1.txt1
-rw-r--r--challenge-307/jeanluc2020/blog-2.txt1
-rwxr-xr-xchallenge-307/jeanluc2020/perl/ch-1.pl66
-rwxr-xr-xchallenge-307/jeanluc2020/perl/ch-2.pl86
-rw-r--r--challenge-307/jo-37/blog.txt1
-rwxr-xr-xchallenge-307/jo-37/perl/ch-1.pl93
-rwxr-xr-xchallenge-307/jo-37/perl/ch-2.pl95
-rw-r--r--challenge-307/mahnkong/perl/ch-1.pl18
-rw-r--r--challenge-307/mahnkong/perl/ch-2.pl21
-rw-r--r--challenge-307/matthias-muth/README.md157
-rw-r--r--challenge-307/matthias-muth/blog.txt1
-rwxr-xr-xchallenge-307/matthias-muth/perl/ch-1.pl28
-rwxr-xr-xchallenge-307/matthias-muth/perl/ch-2.pl36
-rw-r--r--challenge-307/pokgopun/go/ch-1.go83
-rw-r--r--challenge-307/pokgopun/go/ch-2.go104
-rw-r--r--challenge-307/pokgopun/python/ch-1.py65
-rw-r--r--challenge-307/pokgopun/python/ch-2.py75
-rw-r--r--challenge-307/roger-bell-west/blog.txt1
-rwxr-xr-xchallenge-307/roger-bell-west/crystal/ch-1.cr25
-rwxr-xr-xchallenge-307/roger-bell-west/crystal/ch-2.cr22
-rwxr-xr-xchallenge-307/roger-bell-west/javascript/ch-1.js63
-rwxr-xr-xchallenge-307/roger-bell-west/javascript/ch-2.js32
-rw-r--r--challenge-307/roger-bell-west/kotlin/ch-1.kt33
-rw-r--r--challenge-307/roger-bell-west/kotlin/ch-2.kt30
-rwxr-xr-xchallenge-307/roger-bell-west/lua/ch-1.lua64
-rwxr-xr-xchallenge-307/roger-bell-west/lua/ch-2.lua51
-rwxr-xr-xchallenge-307/roger-bell-west/perl/ch-1.pl22
-rwxr-xr-xchallenge-307/roger-bell-west/perl/ch-2.pl24
-rw-r--r--challenge-307/roger-bell-west/postscript/ch-1.ps254
-rw-r--r--challenge-307/roger-bell-west/postscript/ch-2.ps246
-rwxr-xr-xchallenge-307/roger-bell-west/python/ch-1.py25
-rwxr-xr-xchallenge-307/roger-bell-west/python/ch-2.py21
-rwxr-xr-xchallenge-307/roger-bell-west/raku/ch-1.p620
-rwxr-xr-xchallenge-307/roger-bell-west/raku/ch-2.p622
-rwxr-xr-xchallenge-307/roger-bell-west/ruby/ch-1.rb30
-rwxr-xr-xchallenge-307/roger-bell-west/ruby/ch-2.rb26
-rwxr-xr-xchallenge-307/roger-bell-west/rust/ch-1.rs27
-rwxr-xr-xchallenge-307/roger-bell-west/rust/ch-2.rs28
-rw-r--r--challenge-307/roger-bell-west/scala/ch-1.scala35
-rw-r--r--challenge-307/roger-bell-west/scala/ch-2.scala32
-rw-r--r--challenge-307/roger-bell-west/tests.json28
-rw-r--r--challenge-307/sgreen/README.md4
-rw-r--r--challenge-307/sgreen/blog.txt1
-rwxr-xr-xchallenge-307/sgreen/perl/ch-1.pl25
-rwxr-xr-xchallenge-307/sgreen/perl/ch-2.pl28
-rwxr-xr-xchallenge-307/sgreen/python/ch-1.py29
-rwxr-xr-xchallenge-307/sgreen/python/ch-2.py26
-rwxr-xr-xchallenge-307/sgreen/python/test.py25
-rw-r--r--challenge-307/simon-dueck/fsharp/ch-1.fsx16
-rw-r--r--challenge-307/simon-dueck/fsharp/ch-2.fsx21
-rw-r--r--challenge-307/steven-wilson/perl/ch-1.pl15
-rw-r--r--challenge-307/steven-wilson/perl/ch-2.pl23
-rw-r--r--challenge-307/steven-wilson/python/ch-1.py21
-rw-r--r--challenge-307/steven-wilson/python/ch-2.py39
-rw-r--r--challenge-307/wambash/julia/ch-1.jl14
-rw-r--r--challenge-307/wambash/julia/ch-2.jl13
-rw-r--r--challenge-307/wambash/raku/ch-1.raku18
-rw-r--r--challenge-307/wambash/raku/ch-2.raku19
-rwxr-xr-xchallenge-307/wanderdoc/perl/ch-1.pl53
-rwxr-xr-xchallenge-307/wanderdoc/perl/ch-2.pl45
-rwxr-xr-xchallenge-307/wlmb/perl/ch-2.pl12
-rwxr-xr-xchallenge-307/wlmb/perl/ch-2a.pl21
-rw-r--r--challenge-307/zapwai/perl/ch-1.pl17
-rw-r--r--challenge-307/zapwai/perl/ch-2.pl35
102 files changed, 4440 insertions, 15 deletions
diff --git a/challenge-307/arne-sommer/blog.txt b/challenge-307/arne-sommer/blog.txt
new file mode 100644
index 0000000000..9e4f58421f
--- /dev/null
+++ b/challenge-307/arne-sommer/blog.txt
@@ -0,0 +1 @@
+https://raku-musings.com/find-check.html
diff --git a/challenge-307/arne-sommer/raku/ch-1.raku b/challenge-307/arne-sommer/raku/ch-1.raku
new file mode 100755
index 0000000000..7cdcfc635f
--- /dev/null
+++ b/challenge-307/arne-sommer/raku/ch-1.raku
@@ -0,0 +1,23 @@
+#! /usr/bin/env raku
+
+unit sub MAIN (*@ints where @ints.elems >= 2 && all(@ints) ~~ Int,
+ :v(:$verbose));
+
+my @ordered = @ints.sort;
+
+my @indices;
+
+for ^@ints.elems -> $index
+{
+ if @ints[$index] == @ordered[$index]
+ {
+ say ": Index $index: @ints[$index] == @ordered[$index] *" if $verbose;
+ }
+ else
+ {
+ @indices.push: $index;
+ say ": Index $index: @ints[$index] != @ordered[$index]" if $verbose;
+ }
+}
+
+say "({ @indices.join(", ") })";
diff --git a/challenge-307/arne-sommer/raku/ch-2.raku b/challenge-307/arne-sommer/raku/ch-2.raku
new file mode 100755
index 0000000000..7e36e25b6e
--- /dev/null
+++ b/challenge-307/arne-sommer/raku/ch-2.raku
@@ -0,0 +1,30 @@
+#! /usr/bin/env raku
+
+unit sub MAIN (*@words where @words.elems > 0, :v(:$verbose));
+
+my %canonical;
+
+@words.map({ %canonical{$_} = $_.lc.comb.sort.join });
+
+@words.map({ say ": Canonical of: $_ -> %canonical{$_}" }) if $verbose;
+
+my $index = 0;
+
+loop
+{
+ last if @words.elems == 0;
+ last if @words.end == $index;
+
+ if %canonical{@words[$index + 0]} eq %canonical{@words[$index + 1]}
+ {
+ print ": Dropping @words[$index + 0] (index $index)" if $verbose;
+ @words.splice($index,1);
+ say " -> ({ @words.join(",") })" if $verbose;
+ }
+ else
+ {
+ $index++;
+ }
+}
+
+say @words.elems;
diff --git a/challenge-307/arne-sommer/raku/check-order b/challenge-307/arne-sommer/raku/check-order
new file mode 100755
index 0000000000..7cdcfc635f
--- /dev/null
+++ b/challenge-307/arne-sommer/raku/check-order
@@ -0,0 +1,23 @@
+#! /usr/bin/env raku
+
+unit sub MAIN (*@ints where @ints.elems >= 2 && all(@ints) ~~ Int,
+ :v(:$verbose));
+
+my @ordered = @ints.sort;
+
+my @indices;
+
+for ^@ints.elems -> $index
+{
+ if @ints[$index] == @ordered[$index]
+ {
+ say ": Index $index: @ints[$index] == @ordered[$index] *" if $verbose;
+ }
+ else
+ {
+ @indices.push: $index;
+ say ": Index $index: @ints[$index] != @ordered[$index]" if $verbose;
+ }
+}
+
+say "({ @indices.join(", ") })";
diff --git a/challenge-307/arne-sommer/raku/find-anagrams b/challenge-307/arne-sommer/raku/find-anagrams
new file mode 100755
index 0000000000..7e36e25b6e
--- /dev/null
+++ b/challenge-307/arne-sommer/raku/find-anagrams
@@ -0,0 +1,30 @@
+#! /usr/bin/env raku
+
+unit sub MAIN (*@words where @words.elems > 0, :v(:$verbose));
+
+my %canonical;
+
+@words.map({ %canonical{$_} = $_.lc.comb.sort.join });
+
+@words.map({ say ": Canonical of: $_ -> %canonical{$_}" }) if $verbose;
+
+my $index = 0;
+
+loop
+{
+ last if @words.elems == 0;
+ last if @words.end == $index;
+
+ if %canonical{@words[$index + 0]} eq %canonical{@words[$index + 1]}
+ {
+ print ": Dropping @words[$index + 0] (index $index)" if $verbose;
+ @words.splice($index,1);
+ say " -> ({ @words.join(",") })" if $verbose;
+ }
+ else
+ {
+ $index++;
+ }
+}
+
+say @words.elems;
diff --git a/challenge-307/athanasius/perl/ch-1.pl b/challenge-307/athanasius/perl/ch-1.pl
new file mode 100644
index 0000000000..0f1659fa96
--- /dev/null
+++ b/challenge-307/athanasius/perl/ch-1.pl
@@ -0,0 +1,172 @@
+#!perl
+
+################################################################################
+=comment
+
+Perl Weekly Challenge 307
+=========================
+
+TASK #1
+-------
+*Check Order*
+
+Submitted by: Mohammad Sajid Anwar
+
+You are given an array of integers, @ints.
+
+Write a script to re-arrange the given array in an increasing order and return
+the indices where it differs from the original array.
+
+Example 1
+
+ Input: @ints = (5, 2, 4, 3, 1)
+ Output: (0, 2, 3, 4)
+
+ Before: (5, 2, 4, 3, 1)
+ After : (1, 2, 3, 4, 5)
+
+ Difference at indices: (0, 2, 3, 4)
+
+Example 2
+
+ Input: @ints = (1, 2, 1, 1, 3)
+ Output: (1, 3)
+
+ Before: (1, 2, 1, 1, 3)
+ After : (1, 1, 1, 2, 3)
+
+ Difference at indices: (1, 3)
+
+Example 3
+
+ Input: @ints = (3, 1, 3, 2, 3)
+ Output: (0, 1, 3)
+
+ Before: (3, 1, 3, 2, 3)
+ After : (1, 2, 3, 3, 3)
+
+ Difference at indices: (0, 1, 3)
+
+=cut
+################################################################################
+
+#--------------------------------------#
+# Copyright © 2025 PerlMonk Athanasius #
+#--------------------------------------#
+
+#===============================================================================
+=comment
+
+Interface
+---------
+1. If no command-line arguments are given, the test suite is run. Otherwise:
+2. A non-empty list of integers is entered on the command-line.
+
+=cut
+#===============================================================================
+
+use v5.32; # Enables strictures
+use warnings;
+use Const::Fast;
+use Regexp::Common qw( number );
+use Test::More;
+
+const my $USAGE => <<END;
+Usage: