aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad S Anwar <Mohammad.Anwar@yahoo.com>2023-05-16 12:54:39 +0100
committerGitHub <noreply@github.com>2023-05-16 12:54:39 +0100
commitf33f202132be7b16597fbcef52be46b0b960434e (patch)
tree2e2f697028f04120c4ce8d402cdaddfe1463611b
parent15aa8637d53cf3eb5d99b6167a73ad477cd9f467 (diff)
parentc6617352b7a486a8179e327072aa550ee7440c61 (diff)
downloadperlweeklychallenge-club-f33f202132be7b16597fbcef52be46b0b960434e.tar.gz
perlweeklychallenge-club-f33f202132be7b16597fbcef52be46b0b960434e.tar.bz2
perlweeklychallenge-club-f33f202132be7b16597fbcef52be46b0b960434e.zip
Merge pull request #8086 from fluca1978/PWC217
Pwc217
-rw-r--r--challenge-217/luca-ferrari/blog-1.txt1
-rw-r--r--challenge-217/luca-ferrari/blog-2.txt1
-rw-r--r--challenge-217/luca-ferrari/blog-3.txt1
-rw-r--r--challenge-217/luca-ferrari/blog-4.txt1
-rw-r--r--challenge-217/luca-ferrari/blog-5.txt1
-rw-r--r--challenge-217/luca-ferrari/blog-6.txt1
-rw-r--r--challenge-217/luca-ferrari/postgresql/ch-1.plperl16
-rw-r--r--challenge-217/luca-ferrari/postgresql/ch-1.sql20
-rw-r--r--challenge-217/luca-ferrari/postgresql/ch-2.plperl22
-rw-r--r--challenge-217/luca-ferrari/postgresql/ch-2.sql19
-rw-r--r--challenge-217/luca-ferrari/raku/ch-1.p612
-rw-r--r--challenge-217/luca-ferrari/raku/ch-2.p617
12 files changed, 112 insertions, 0 deletions
diff --git a/challenge-217/luca-ferrari/blog-1.txt b/challenge-217/luca-ferrari/blog-1.txt
new file mode 100644
index 0000000000..bfd82f541e
--- /dev/null
+++ b/challenge-217/luca-ferrari/blog-1.txt
@@ -0,0 +1 @@
+https://fluca1978.github.io/2023/05/15/PerlWeeklyChallenge217.html#task1
diff --git a/challenge-217/luca-ferrari/blog-2.txt b/challenge-217/luca-ferrari/blog-2.txt
new file mode 100644
index 0000000000..7b71b89501
--- /dev/null
+++ b/challenge-217/luca-ferrari/blog-2.txt
@@ -0,0 +1 @@
+https://fluca1978.github.io/2023/05/15/PerlWeeklyChallenge217.html#task2
diff --git a/challenge-217/luca-ferrari/blog-3.txt b/challenge-217/luca-ferrari/blog-3.txt
new file mode 100644
index 0000000000..a25407a30b
--- /dev/null
+++ b/challenge-217/luca-ferrari/blog-3.txt
@@ -0,0 +1 @@
+https://fluca1978.github.io/2023/05/15/PerlWeeklyChallenge217.html#task1plperl
diff --git a/challenge-217/luca-ferrari/blog-4.txt b/challenge-217/luca-ferrari/blog-4.txt
new file mode 100644
index 0000000000..9554036bc0
--- /dev/null
+++ b/challenge-217/luca-ferrari/blog-4.txt
@@ -0,0 +1 @@
+https://fluca1978.github.io/2023/05/15/PerlWeeklyChallenge217.html#task2plperl
diff --git a/challenge-217/luca-ferrari/blog-5.txt b/challenge-217/luca-ferrari/blog-5.txt
new file mode 100644
index 0000000000..0da9ad7f09
--- /dev/null
+++ b/challenge-217/luca-ferrari/blog-5.txt
@@ -0,0 +1 @@
+https://fluca1978.github.io/2023/05/15/PerlWeeklyChallenge217.html#task1plpgsql
diff --git a/challenge-217/luca-ferrari/blog-6.txt b/challenge-217/luca-ferrari/blog-6.txt
new file mode 100644
index 0000000000..2da27b3afd
--- /dev/null
+++ b/challenge-217/luca-ferrari/blog-6.txt
@@ -0,0 +1 @@
+https://fluca1978.github.io/2023/05/15/PerlWeeklyChallenge217.html#task2plpgsql
diff --git a/challenge-217/luca-ferrari/postgresql/ch-1.plperl b/challenge-217/luca-ferrari/postgresql/ch-1.plperl
new file mode 100644
index 0000000000..7e470898c1
--- /dev/null
+++ b/challenge-217/luca-ferrari/postgresql/ch-1.plperl
@@ -0,0 +1,16 @@
+--
+-- Perl Weekly Challenge 217
+-- Task 1
+-- See <https://perlweeklychallenge.org/blog/perl-weekly-challenge-217/>
+--
+
+CREATE SCHEMA IF NOT EXISTS pwc217;
+
+CREATE OR REPLACE FUNCTION
+pwc217.task1_plperl( int[] )
+RETURNS int
+AS $CODE$
+ my ( $array ) = @_;
+ return ( sort( $array->@* ) )[ 3 ];
+$CODE$
+LANGUAGE plperl;
diff --git a/challenge-217/luca-ferrari/postgresql/ch-1.sql b/challenge-217/luca-ferrari/postgresql/ch-1.sql
new file mode 100644
index 0000000000..e4419e71c9
--- /dev/null
+++ b/challenge-217/luca-ferrari/postgresql/ch-1.sql
@@ -0,0 +1,20 @@
+--
+-- Perl Weekly Challenge 217
+-- Task 1
+--
+-- See <https://perlweeklychallenge.org/blog/perl-weekly-challenge-217/>
+--
+
+CREATE SCHEMA IF NOT EXISTS pwc217;
+
+CREATE OR REPLACE FUNCTION
+pwc217.task1_plpgsql( a int[] )
+RETURNS int
+AS $CODE$
+ SELECT v
+ FROM unnest( a ) v
+ ORDER BY 1
+ LIMIT 1
+ OFFSET 3;
+$CODE$
+LANGUAGE sql;
diff --git a/challenge-217/luca-ferrari/postgresql/ch-2.plperl b/challenge-217/luca-ferrari/postgresql/ch-2.plperl
new file mode 100644
index 0000000000..d722bcba46
--- /dev/null
+++ b/challenge-217/luca-ferrari/postgresql/ch-2.plperl
@@ -0,0 +1,22 @@
+--
+-- Perl Weekly Challenge 217
+-- Task 2
+-- See <https://perlweeklychallenge.org/blog/perl-weekly-challenge-217/>
+--
+
+CREATE SCHEMA IF NOT EXISTS pwc217;
+
+CREATE OR REPLACE FUNCTION
+pwc217.task2_plperl( int[] )
+RETURNS int
+AS $CODE$
+ use List::Permutor;
+ my ( $max ) = 0;
+ my $engine = List::Permutor->new( $_[0]->@* );
+ while ( my @current = $engine->next ) {
+ $max = join( '', @current ) if ( join( '', @current ) > $max );
+ }
+
+ return $max;
+$CODE$
+LANGUAGE plperlu;
diff --git a/challenge-217/luca-ferrari/postgresql/ch-2.sql b/challenge-217/luca-ferrari/postgresql/ch-2.sql
new file mode 100644
index 0000000000..e41dae8834
--- /dev/null
+++ b/challenge-217/luca-ferrari/postgresql/ch-2.sql
@@ -0,0 +1,19 @@
+--
+-- Perl Weekly Challenge 217
+-- Task 2
+--
+-- See <https://perlweeklychallenge.org/blog/perl-weekly-challenge-217/>
+--
+
+CREATE SCHEMA IF NOT EXISTS pwc217;
+
+CREATE OR REPLACE FUNCTION
+pwc217.task2_plpgsql( a int[] )
+RETURNS int
+AS $CODE$
+ SELECT string_agg( v.vv::text, '' )::int
+ FROM ( SELECT vv
+ FROM unnest( a ) vv
+ ORDER BY ( vv % 10 ) DESC ) v;
+$CODE$
+LANGUAGE sql;
diff --git a/challenge-217/luca-ferrari/raku/ch-1.p6 b/challenge-217/luca-ferrari/raku/ch-1.p6
new file mode 100644
index 0000000000..a124f2d0a5
--- /dev/null
+++ b/challenge-217/luca-ferrari/raku/ch-1.p6
@@ -0,0 +1,12 @@
+#!raku
+
+#
+# Perl Weekly Challenge 217
+# Task 1
+#
+# See <https://perlweeklychallenge.org/blog/perl-weekly-challenge-217/>
+#
+
+sub MAIN( *@n where { @n.grep( * ~~ Int ).elems == @n.elems } ) {
+ @n.sort()[ 3 ].say;
+}
diff --git a/challenge-217/luca-ferrari/raku/ch-2.p6 b/challenge-217/luca-ferrari/raku/ch-2.p6
new file mode 100644
index 0000000000..e765c6480c
--- /dev/null
+++ b/challenge-217/luca-ferrari/raku/ch-2.p6
@@ -0,0 +1,17 @@
+#!raku
+
+#
+# Perl Weekly Challenge 217
+# Task 2
+#
+# See <https://perlweeklychallenge.org/blog/perl-weekly-challenge-217/>
+#
+
+sub MAIN( *@list where { @list.grep( * ~~ Int ).elems == @list.elems } ) {
+ my $max = 0;
+ for @list.permutations {
+ $max = $_.join if ( $_.join.Int > $max );
+ }
+
+ $max.say;
+}