aboutsummaryrefslogtreecommitdiff
path: root/challenge-263/luca-ferrari/plperl
diff options
context:
space:
mode:
authorLuca Ferrari <fluca1978@gmail.com>2024-04-04 13:03:27 +0200
committerLuca Ferrari <fluca1978@gmail.com>2024-04-04 15:05:03 +0200
commit44a92ee6dd0ca577889cc1489e1237d5084a1efc (patch)
tree49d7ea43e0763e88f5812ddb0932336209f02b97 /challenge-263/luca-ferrari/plperl
parentc2aa18d20881e4079d3858c0218ff99a07032d33 (diff)
downloadperlweeklychallenge-club-44a92ee6dd0ca577889cc1489e1237d5084a1efc.tar.gz
perlweeklychallenge-club-44a92ee6dd0ca577889cc1489e1237d5084a1efc.tar.bz2
perlweeklychallenge-club-44a92ee6dd0ca577889cc1489e1237d5084a1efc.zip
PWC 263
Task 1 Raku done Task 2 Raku done Task 1 PL/Perl done Task 2 PL/Perl done Task 1 PL/PgSQL done Task 2 PL/PgSQL done Task 1 PL/Java done Task 2 PL/Java done Task 1 Python done Task 2 PYthon done
Diffstat (limited to 'challenge-263/luca-ferrari/plperl')
-rw-r--r--challenge-263/luca-ferrari/plperl/ch-1.plperl23
-rw-r--r--challenge-263/luca-ferrari/plperl/ch-2.plperl25
2 files changed, 48 insertions, 0 deletions
diff --git a/challenge-263/luca-ferrari/plperl/ch-1.plperl b/challenge-263/luca-ferrari/plperl/ch-1.plperl
new file mode 100644
index 0000000000..3430f227af
--- /dev/null
+++ b/challenge-263/luca-ferrari/plperl/ch-1.plperl
@@ -0,0 +1,23 @@
+--
+-- Perl Weekly Challenge 263
+-- Task 1
+-- See <https://perlweeklychallenge.org/blog/perl-weekly-challenge-263>
+--
+
+CREATE SCHEMA IF NOT EXISTS pwc263;
+
+CREATE OR REPLACE FUNCTION
+pwc263.task1_plperl( int, int[] )
+RETURNS SETOF int
+AS $CODE$
+
+ my ( $k, $nums ) = @_;
+
+ return [
+ map { $_->[ 0 ] }
+ grep { $_->[ 1 ] == $k }
+ map { [ $index++, $_ ] }
+ sort $nums->@* ];
+
+$CODE$
+LANGUAGE plperl;
diff --git a/challenge-263/luca-ferrari/plperl/ch-2.plperl b/challenge-263/luca-ferrari/plperl/ch-2.plperl
new file mode 100644
index 0000000000..2dd1cbe968
--- /dev/null
+++ b/challenge-263/luca-ferrari/plperl/ch-2.plperl
@@ -0,0 +1,25 @@
+--
+-- Perl Weekly Challenge 263
+-- Task 2
+-- See <https://perlweeklychallenge.org/blog/perl-weekly-challenge-263>
+--
+
+CREATE SCHEMA IF NOT EXISTS pwc263;
+
+CREATE OR REPLACE FUNCTION
+pwc263.task2_plperl( int[], int[] )
+RETURNS TABLE( item int, qty int )
+AS $CODE$
+
+ my ( $items1, $items2 ) = @_;
+ my $q = {};
+
+ for my $pair ( $items1->@*, $items2->@* ) {
+ $q->{ $pair->[ 0 ] } += $pair->[ 1 ];
+ }
+
+
+ return_next( { item => $_, qty => $q->{ $_ } } ) for ( sort keys $q->%* );
+ return undef;
+$CODE$
+LANGUAGE plperl;