aboutsummaryrefslogtreecommitdiff
path: root/challenge-196
diff options
context:
space:
mode:
authorLuca Ferrari <fluca1978@gmail.com>2022-12-19 10:28:09 +0100
committerLuca Ferrari <fluca1978@gmail.com>2022-12-19 10:28:09 +0100
commit4ceffc0526ec27e141debda11936c854940ec637 (patch)
treee8eace5f30c23011099fd16b113b2c57e2b2929d /challenge-196
parent5625ad93926298ceb5bcca92c5e7bdf9ccfd51a2 (diff)
downloadperlweeklychallenge-club-4ceffc0526ec27e141debda11936c854940ec637.tar.gz
perlweeklychallenge-club-4ceffc0526ec27e141debda11936c854940ec637.tar.bz2
perlweeklychallenge-club-4ceffc0526ec27e141debda11936c854940ec637.zip
Task 2 done
Diffstat (limited to 'challenge-196')
-rw-r--r--challenge-196/luca-ferrari/postgresql/ch-2.plperl23
1 files changed, 23 insertions, 0 deletions
diff --git a/challenge-196/luca-ferrari/postgresql/ch-2.plperl b/challenge-196/luca-ferrari/postgresql/ch-2.plperl
new file mode 100644
index 0000000000..2608c1a841
--- /dev/null
+++ b/challenge-196/luca-ferrari/postgresql/ch-2.plperl
@@ -0,0 +1,23 @@
+-- Perl Weekly Challenge 196
+-- Task 2
+
+CREATE SCHEMA IF NOT EXISTS pwc196;
+
+CREATE OR REPLACE FUNCTION
+pwc196.task2_plperl( int[] )
+RETURNS SETOF int[]
+AS $CODE$
+ my ( $array ) = $_[0];
+ my ( $start, $end ) = ( 0, 0 );
+
+ while ( $start < $array->@* ) {
+ $end = $start;
+ $end++ while ( $end < $array->@* && $array->[ $end + 1 ] == $array->[ $end ] + 1 );
+ return_next( [ $start, $end ] ) if ( $end > $start );
+ $start += $end + 1;
+ }
+
+return undef;
+
+$CODE$
+LANGUAGE plperl;