aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuca Ferrari <fluca1978@gmail.com>2022-08-22 11:55:40 +0200
committerLuca Ferrari <fluca1978@gmail.com>2022-08-22 11:55:40 +0200
commita6c87bd08e681702a45eb02d505897169af68865 (patch)
tree365af7404af665e54d67f8c9d2b9c72b2ef54661
parent8071a002320792cda2be39bde5c8792934527032 (diff)
downloadperlweeklychallenge-club-a6c87bd08e681702a45eb02d505897169af68865.tar.gz
perlweeklychallenge-club-a6c87bd08e681702a45eb02d505897169af68865.tar.bz2
perlweeklychallenge-club-a6c87bd08e681702a45eb02d505897169af68865.zip
Task 2 plperl done
-rw-r--r--challenge-179/luca-ferrari/postgresql/ch-2.plperl28
1 files changed, 28 insertions, 0 deletions
diff --git a/challenge-179/luca-ferrari/postgresql/ch-2.plperl b/challenge-179/luca-ferrari/postgresql/ch-2.plperl
new file mode 100644
index 0000000000..1a45a69416
--- /dev/null
+++ b/challenge-179/luca-ferrari/postgresql/ch-2.plperl
@@ -0,0 +1,28 @@
+-- Perl Weekly Challenge 179
+-- Task 2
+
+CREATE SCHEMA IF NOT EXISTS pwc179;
+
+CREATE OR REPLACE FUNCTION
+pwc179.task2_plperl( int[] )
+RETURNS text
+AS $CODE$
+
+ my ($n) = shift;
+ my @n;
+
+ my @symbols = map {chr($_)} (0x2581..0x2588);
+
+ my ($min, $max) = (-1,-1);
+
+ # compute min and max over the values
+ for my $current ( @$n ) {
+ $max = $current if ( $current > $max );
+ $min = $current if ( $min == -1 || $current < $min );
+ push @n, $current;
+ }
+
+ my @graph = map { ( $_ - $min ) / ( $max - $min ) * scalar( @$n ) } @$n;
+ return join( '', @symbols[ @graph ] );
+$CODE$
+LANGUAGE plperl;