aboutsummaryrefslogtreecommitdiff
path: root/challenge-073
diff options
context:
space:
mode:
Diffstat (limited to 'challenge-073')
-rw-r--r--challenge-073/arne-sommer/blog.txt1
-rwxr-xr-xchallenge-073/arne-sommer/perl/ch-1.pl25
-rwxr-xr-xchallenge-073/arne-sommer/perl/ch-2.pl29
-rwxr-xr-xchallenge-073/arne-sommer/perl/min-sliding-window-perl25
-rwxr-xr-xchallenge-073/arne-sommer/perl/smallest-neighbour-perl29
-rwxr-xr-xchallenge-073/arne-sommer/raku/ch-1.raku9
-rwxr-xr-xchallenge-073/arne-sommer/raku/ch-2.raku12
-rwxr-xr-xchallenge-073/arne-sommer/raku/min-sliding-window9
-rwxr-xr-xchallenge-073/arne-sommer/raku/min-sliding-window-plain5
-rwxr-xr-xchallenge-073/arne-sommer/raku/smallest-neighbour12
-rwxr-xr-xchallenge-073/arne-sommer/raku/smallest-neighbour-first11
-rw-r--r--challenge-073/athanasius/perl/ch-1.pl106
-rw-r--r--challenge-073/athanasius/perl/ch-2.pl145
-rw-r--r--challenge-073/athanasius/raku/ch-1.raku78
-rw-r--r--challenge-073/athanasius/raku/ch-2.raku131
-rw-r--r--challenge-073/bob-lied/README72
-rw-r--r--challenge-073/bob-lied/perl/MinSlidingWindow.pm40
-rw-r--r--challenge-073/bob-lied/perl/ch-1.pl38
-rw-r--r--challenge-073/bob-lied/perl/ch-1.t29
-rw-r--r--challenge-073/bob-lied/perl/ch-1a.pl104
-rw-r--r--challenge-073/bob-lied/perl/ch-2.pl47
-rw-r--r--challenge-073/cheok-yin-fung/BLOG.txt1
-rw-r--r--challenge-073/cheok-yin-fung/common-lisp/ch-1.lsp35
-rw-r--r--challenge-073/cheok-yin-fung/perl/ch-1.pl48
-rw-r--r--challenge-073/cheok-yin-fung/perl/ch-1a.pl94
-rw-r--r--challenge-073/cheok-yin-fung/perl/ch-2.pl59
-rw-r--r--challenge-073/colin-crain/blog.txt1
-rw-r--r--challenge-073/colin-crain/perl/ch-1.pl70
-rw-r--r--challenge-073/colin-crain/perl/ch-2.pl110
-rw-r--r--challenge-073/colin-crain/raku/ch-1.raku46
-rw-r--r--challenge-073/colin-crain/raku/ch-2.raku93
-rw-r--r--challenge-073/cristian-heredia/perl/ch-1.pl62
-rw-r--r--challenge-073/cristian-heredia/perl/ch-2.pl68
-rw-r--r--challenge-073/jaldhar-h-vyas/blog.txt1
-rwxr-xr-xchallenge-073/jaldhar-h-vyas/perl/ch-1.pl45
-rwxr-xr-xchallenge-073/jaldhar-h-vyas/perl/ch-2.pl44
-rwxr-xr-xchallenge-073/jaldhar-h-vyas/raku/ch-1.p616
-rwxr-xr-xchallenge-073/jaldhar-h-vyas/raku/ch-2.p616
-rw-r--r--challenge-073/javier-luque/blog.txt1
-rw-r--r--challenge-073/javier-luque/perl/ch-1.pl14
-rw-r--r--challenge-073/javier-luque/perl/ch-2.pl29
-rw-r--r--challenge-073/javier-luque/raku/ch-1.p612
-rw-r--r--challenge-073/javier-luque/raku/ch-2.p627
-rw-r--r--challenge-073/jeongoon/.gitignore3
-rw-r--r--challenge-073/jeongoon/common-lisp/ch-1.lsp118
-rw-r--r--challenge-073/jeongoon/common-lisp/ch-2.lsp75
-rw-r--r--challenge-073/jeongoon/haskell/JRandomList.hs49
-rw-r--r--challenge-073/jeongoon/haskell/ch-1.hs144
-rw-r--r--challenge-073/jeongoon/haskell/ch-2.hs53
-rw-r--r--challenge-073/jeongoon/perl/ch-1.pl175
-rw-r--r--challenge-073/jeongoon/perl/ch-2.pl49
-rw-r--r--challenge-073/jeongoon/raku/ch-1.raku91
-rw-r--r--challenge-073/jeongoon/raku/ch-2.raku32
-rwxr-xr-xchallenge-073/jo-37/perl/ch-1.pl18
-rwxr-xr-xchallenge-073/jo-37/perl/ch-2.pl18
-rw-r--r--challenge-073/lance-wicks/blog.txt1
-rw-r--r--challenge-073/lance-wicks/blog1.txt1
-rw-r--r--challenge-073/lance-wicks/perl/Sliding.pm23
-rw-r--r--challenge-073/lance-wicks/perl/ch-1.pl54
-rw-r--r--challenge-073/laurent-rosenfeld/blog.txt1
-rw-r--r--challenge-073/laurent-rosenfeld/perl/ch-1.pl19
-rw-r--r--challenge-073/laurent-rosenfeld/perl/ch-2.pl16
-rw-r--r--challenge-073/laurent-rosenfeld/raku/ch-1.raku11
-rw-r--r--challenge-073/laurent-rosenfeld/raku/ch-2.raku14
-rw-r--r--challenge-073/lubos-kolouch/perl/ch-1.pl54
-rw-r--r--challenge-073/lubos-kolouch/perl/ch-2.pl55
-rwxr-xr-xchallenge-073/lubos-kolouch/python/ch-1.py27
-rwxr-xr-xchallenge-073/lubos-kolouch/python/ch-2.py29
-rw-r--r--challenge-073/luca-ferrari/blog-1.txt1
-rw-r--r--challenge-073/luca-ferrari/blog-2.txt1
-rw-r--r--challenge-073/luca-ferrari/raku/ch-1.p615
-rw-r--r--challenge-073/luca-ferrari/raku/ch-2.p619
-rw-r--r--challenge-073/mano-chandar/perl/ch-1.pl17
-rw-r--r--challenge-073/mano-chandar/perl/ch-2.pl26
-rw-r--r--challenge-073/mohammad-anwar/blog.txt1
-rw-r--r--challenge-073/mohammad-anwar/blog1.txt1
-rw-r--r--challenge-073/mohammad-anwar/blog2.txt1
-rw-r--r--challenge-073/noud/raku/ch-1.p623
-rw-r--r--challenge-073/noud/raku/ch-2.p636
-rwxr-xr-xchallenge-073/perlboy1967/perl/ch-1.pl35
-rwxr-xr-xchallenge-073/perlboy1967/perl/ch-2.pl32
-rw-r--r--challenge-073/pete-houston/perl/ch-1.pl34
-rw-r--r--challenge-073/pete-houston/perl/ch-2.pl26
-rw-r--r--challenge-073/roger-bell-west/blog.txt1
-rw-r--r--challenge-073/sgreen/README.md39
-rw-r--r--challenge-073/sgreen/blog.txt1
-rwxr-xr-xchallenge-073/sgreen/perl/ch-1.pl30
-rwxr-xr-xchallenge-073/sgreen/perl/ch-2.pl25
-rw-r--r--challenge-073/steven-wilson/perl/ch-1.pl32
-rw-r--r--challenge-073/ulrich-rieke/haskell/ch-1.hs6
-rw-r--r--challenge-073/ulrich-rieke/haskell/ch-2.hs12
-rw-r--r--challenge-073/ulrich-rieke/perl/ch-1.pl49
-rw-r--r--challenge-073/ulrich-rieke/perl/ch-2.pl59
-rw-r--r--challenge-073/ulrich-rieke/raku/ch-1.raku28
-rw-r--r--challenge-073/ulrich-rieke/raku/ch-2.raku29
-rw-r--r--challenge-073/walt-mankowski/blog.txt1
-rw-r--r--challenge-073/walt-mankowski/perl/ch-1.pl30
-rw-r--r--challenge-073/walt-mankowski/perl/ch-2.pl41
-rw-r--r--challenge-073/walt-mankowski/python/.python-version2
-rw-r--r--challenge-073/walt-mankowski/python/ch-1.py6
-rw-r--r--challenge-073/walt-mankowski/python/ch-2.py11
-rw-r--r--challenge-073/wambash/raku/ch-1.raku13
-rw-r--r--challenge-073/wambash/raku/ch-2.raku15
-rwxr-xr-xchallenge-073/will-west/perl/ch-1.pl63
-rw-r--r--challenge-073/xkr47/rust/Cargo.toml16
-rw-r--r--challenge-073/xkr47/rust/ch-2-2.rs47
-rw-r--r--challenge-073/xkr47/rust/ch-2.rs18
107 files changed, 3754 insertions, 67 deletions
diff --git a/challenge-073/arne-sommer/blog.txt b/challenge-073/arne-sommer/blog.txt
new file mode 100644
index 0000000000..20cc755a48
--- /dev/null
+++ b/challenge-073/arne-sommer/blog.txt
@@ -0,0 +1 @@
+https://raku-musings.com/sliding-neighbour.html
diff --git a/challenge-073/arne-sommer/perl/ch-1.pl b/challenge-073/arne-sommer/perl/ch-1.pl
new file mode 100755
index 0000000000..9e43f35bb2
--- /dev/null
+++ b/challenge-073/arne-sommer/perl/ch-1.pl
@@ -0,0 +1,25 @@
+#! /usr/bin/env perl
+
+use strict;
+use feature 'say';
+use Getopt::Long;
+use List::Util 'min';
+use Perl6::Junction 'all';
+
+my $verbose = 0;
+
+GetOptions("verbose" => \$verbose);
+
+die 'Specify $S and @A' unless @ARGV;
+
+my ($S, @A) = @ARGV;
+
+die '$S must be an integer >= 1' unless int($S) == $S && $S >= 1;
+die '@A must contain integers only' unless all(@A) == qr/^\d+$/;
+
+map { say ": (" . join(", ", @A[$_ .. $_ + $S -1]) . ") min -> " . min @A[$_ .. $_ + $S -1] }
+(0 .. @A - $S) if $verbose;
+
+say "(",
+ join (", ", map { min @A[$_ .. $_ + $S -1] } (0 .. @A - $S)),
+ ")";
diff --git a/challenge-073/arne-sommer/perl/ch-2.pl b/challenge-073/arne-sommer/perl/ch-2.pl
new file mode 100755
index 0000000000..8043a49e6b
--- /dev/null
+++ b/challenge-073/arne-sommer/perl/ch-2.pl
@@ -0,0 +1,29 @@
+#! /usr/bin/env perl
+
+use strict;
+use feature 'say';
+use Getopt::Long;
+use List::Util 'min';
+use Perl6::Junction 'all';
+
+my $verbose = 0;
+
+GetOptions("verbose" => \$verbose);
+
+die 'Specify @A' unless @ARGV;
+
+my (@A) = @ARGV;
+
+die '@A must contain integers only' unless all(@A) == qr/^\d+$/;
+
+if ($verbose)
+{
+ say ": index 0 (" . $A[0] . ") -> () -> 0";
+ map { say ": index $_ ($A[$_]) -> (" . join(", ", @A[0 .. $_ -1]) . ") -> " .
+ (min @A[0 .. $_ -1] < $A[$_] ? min @A[0 .. $_ -1] : 0 ) } (1 .. @A -1);
+}
+
+say "(0, ",
+ join (", ",
+ map { my $c = min @A[0 .. $_ -1]; $c < $A[$_] ? $c : 0 } (1 .. @A -1)),
+ ")";
diff --git a/challenge-073/arne-sommer/perl/min-sliding-window-perl b/challenge-073/arne-sommer/perl/min-sliding-window-perl
new file mode 100755
index 0000000000..9e43f35bb2
--- /dev/null
+++ b/challenge-073/arne-sommer/perl/min-sliding-window-perl
@@ -0,0 +1,25 @@
+#! /usr/bin/env perl
+
+use strict;
+use feature 'say';
+use Getopt::Long;
+use List::Util 'min';
+use Perl6::Junction 'all';
+
+my $verbose = 0;
+
+GetOptions("verbose" => \$verbose);
+
+die 'Specify $S and @A' unless @ARGV;
+
+my ($S, @A) = @ARGV;
+
+die '$S must be an integer >= 1' unless int($S) == $S && $S >= 1;
+die '@A must contain integers only' unless all(@A) == qr/^\d+$/;
+
+map { say ": (" . join(", ", @A[$_ .. $_ + $S -1]) . ") min -> " . min @A[$_ .. $_ + $S -1] }
+(0 .. @A - $S) if $verbose;
+
+say "(",
+ join (", ", map { min @A[$_ .. $_ + $S -1] } (0 .. @A - $S)),
+ ")";
diff --git a/challenge-073/arne-sommer/perl/smallest-neighbour-perl b/challenge-073/arne-sommer/perl/smallest-neighbour-perl
new file mode 100755
index 0000000000..8043a49e6b
--- /dev/null
+++ b/challenge-073/arne-sommer/perl/smallest-neighbour-perl
@@ -0,0 +1,29 @@
+#! /usr/bin/env perl
+
+use strict;
+use feature 'say';
+use Getopt::Long;
+use List::Util 'min';
+use Perl6::Junction 'all';
+
+my $verbose = 0;
+
+GetOptions("verbose" => \$verbose);
+
+die 'Specify @A' unless @ARGV;
+
+my (@A) = @ARGV;
+
+die '@A must contain integers only' unless all(@A) == qr/^\d+$/;
+
+if ($verbose)
+{
+ say ": index 0 (" . $A[0] . ") -> () -> 0";
+ map { say ": index $_ ($A[$_]) -> (" . join(", ", @A[0 .. $_ -1]) . ") -> " .
+ (min @A[0 .. $_ -1] < $A[$_] ? min @A[0 .. $_ -1] : 0 ) } (1 .. @A -1);
+}
+
+say "(0, ",
+ join (", ",
+ map { my $c = min @A[0 .. $_ -1]; $c < $A[$_] ? $c : 0 } (1 .. @A -1)),
+ ")";
diff --git a/challenge-073/arne-sommer/raku/ch-1.raku b/challenge-073/arne-sommer/raku/ch-1.raku
new file mode 100755
index 0000000000..711f6fa1b2
--- /dev/null
+++ b/challenge-073/arne-sommer/raku/ch-1.raku
@@ -0,0 +1,9 @@
+#! /usr/bin/env raku
+
+unit sub MAIN (Int $S where * >= 1, *@A, :v(:$verbose));
+
+die "Integers only" unless all(@A) ~~ Int;
+
+(0 .. @A.elems - $S).map({ say ": (" ~ @A[$_ .. $_ + $S -1].join(", ") ~ ") min -> " ~ @A[$_ .. $_ + $S -1].min }) if $verbose;
+
+say "(", (0 .. @A.elems - $S).map({ @A[$_ .. $_ + $S -1].min }).join(", "), ")"; \ No newline at end of file
diff --git a/challenge-073/arne-sommer/raku/ch-2.raku b/challenge-073/arne-sommer/raku/ch-2.raku
new file mode 100755
index 0000000000..c0b349f180
--- /dev/null
+++ b/challenge-073/arne-sommer/raku/ch-2.raku
@@ -0,0 +1,12 @@
+#! /usr/bin/env raku
+
+unit sub MAIN (*@A where @A.elems > 0 && all(@A) ~~ Int, :v(:$verbose));
+
+if $verbose
+{
+ say ": index 0 (@A[0]) -> () -> 0";
+ (1 .. @A.end).map({ say ": index $_ (@A[$_]) -> (" ~ @A[0 .. $_ -1].join(", ") ~ ") -> "
+ ~ (@A[0 .. $_ -1].min < @A[$_] ?? @A[0 .. $_ -1].min !! 0 ) })
+}
+
+say "(0, ", (1 .. @A.end).map({ my $c = @A[0 .. $_ -1].min; $c < @A[$_] ?? $c !! 0 }).join(", "), ")";
diff --git a/challenge-073/arne-sommer/raku/min-sliding-window b/challenge-073/arne-sommer/raku/min-sliding-window
new file mode 100755
index 0000000000..711f6fa1b2
--- /dev/null
+++ b/challenge-073/arne-sommer/raku/min-sliding-window
@@ -0,0 +1,9 @@
+#! /usr/bin/env raku
+
+unit sub MAIN (Int $S where * >= 1, *@A, :v(:$verbose));
+
+die "Integers only" unless all(@A) ~~ Int;
+
+(0 .. @A.elems - $S).map({ say ": (" ~ @A[$_ .. $_ + $S -1].join(", ") ~ ") min -> " ~ @A[$_ .. $_ + $S -1].min }) if $verbose;
+
+say "(", (0 .. @A.elems - $S).map({ @A[$_ .. $_ + $S -1].min }).join(", "), ")"; \ No newline at end of file
diff --git a/challenge-073/arne-sommer/raku/min-sliding-window-plain b/challenge-073/arne-sommer/raku/min-sliding-window-plain
new file mode 100755
index 0000000000..7b3cb8d005
--- /dev/null
+++ b/