aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuca Ferrari <fluca1978@gmail.com>2023-09-17 18:57:09 +0200
committerLuca Ferrari <fluca1978@gmail.com>2023-09-17 18:57:09 +0200
commit15ac125d275f03abcdaff4a7b821fa23800987ef (patch)
tree37da62757955733730e5a98a128e1eccb70ef8ad
parent60080f94b1cd0ff7dd6eb0dc3df3fd62feb3ae6a (diff)
downloadperlweeklychallenge-club-15ac125d275f03abcdaff4a7b821fa23800987ef.tar.gz
perlweeklychallenge-club-15ac125d275f03abcdaff4a7b821fa23800987ef.tar.bz2
perlweeklychallenge-club-15ac125d275f03abcdaff4a7b821fa23800987ef.zip
Task 2 plperl
-rw-r--r--challenge-234/luca-ferrari/postgresql/ch-2.plperl28
1 files changed, 28 insertions, 0 deletions
diff --git a/challenge-234/luca-ferrari/postgresql/ch-2.plperl b/challenge-234/luca-ferrari/postgresql/ch-2.plperl
new file mode 100644
index 0000000000..ac85075a2a
--- /dev/null
+++ b/challenge-234/luca-ferrari/postgresql/ch-2.plperl
@@ -0,0 +1,28 @@
+--
+-- Perl Weekly Challenge 234
+-- Task 2
+-- See <https://perlweeklychallenge.org/blog/perl-weekly-challenge-234/>
+--
+
+CREATE SCHEMA IF NOT EXISTS pwc234;
+
+CREATE OR REPLACE FUNCTION
+pwc234.task2_plperl( int[] )
+RETURNS TABLE( i int, j int, k int )
+AS $CODE$
+ my ( $nums ) = @_;
+
+ for my $i ( 0 .. $nums->@* - 3 ) {
+ for my $j ( $i + 1 .. $nums->@* - 2 ) {
+ for my $k ( $j + 1 .. $nums->@* - 1 ) {
+ return_next( { i => $i, j => $j, k => $k } )
+ if ( $nums->[ $i ] != $nums->[ $j ]
+ && $nums->[ $j ] != $nums->[ $k ]
+ && $nums->[ $k ] != $nums->[ $i ] );
+ }
+ }
+ }
+
+ return undef;
+$CODE$
+LANGUAGE plperl;