diff options
| author | Luca Ferrari <fluca1978@gmail.com> | 2022-08-22 11:55:40 +0200 |
|---|---|---|
| committer | Luca Ferrari <fluca1978@gmail.com> | 2022-08-22 11:55:40 +0200 |
| commit | a6c87bd08e681702a45eb02d505897169af68865 (patch) | |
| tree | 365af7404af665e54d67f8c9d2b9c72b2ef54661 | |
| parent | 8071a002320792cda2be39bde5c8792934527032 (diff) | |
| download | perlweeklychallenge-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.plperl | 28 |
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; |
