aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorScimon <simon.proctor@gmail.com>2022-08-23 10:16:56 +0100
committerScimon <simon.proctor@gmail.com>2022-08-23 10:16:56 +0100
commitb0094776fe0b8e5895c7830ab8cce05feb945cd7 (patch)
treead25d72fb028df78bcaf074f177f8be2253aef8d
parentdbb96034773a87fc1283697c57b32447850ee644 (diff)
downloadperlweeklychallenge-club-b0094776fe0b8e5895c7830ab8cce05feb945cd7.tar.gz
perlweeklychallenge-club-b0094776fe0b8e5895c7830ab8cce05feb945cd7.tar.bz2
perlweeklychallenge-club-b0094776fe0b8e5895c7830ab8cce05feb945cd7.zip
Challenge 2
-rw-r--r--challenge-179/simon-proctor/raku/ch-2.raku18
1 files changed, 18 insertions, 0 deletions
diff --git a/challenge-179/simon-proctor/raku/ch-2.raku b/challenge-179/simon-proctor/raku/ch-2.raku
new file mode 100644
index 0000000000..11b4a722dc
--- /dev/null
+++ b/challenge-179/simon-proctor/raku/ch-2.raku
@@ -0,0 +1,18 @@
+#!/usr/bin/env raku
+
+constant @SPARKS = <<▁ ▂ ▃ ▄ ▅ ▆ ▇ █>>;
+
+#| Draw a sparkline for the given list of positive numbers
+sub MAIN( *@values where { all(@values).Num() >= 0 } ) {
+ my &func = sub ($) { 3 };
+ my ( $min, $max ) = ( @values.min, @values.max );
+ if ( $min != $max ) {
+ my $break = (($max - $min) / 7);
+ &func = sub ($v) { Int( ($v - $min) / $break ) }
+ }
+ @values.map( &func ).map( { @SPARKS[$_] } ).join('').say;
+}
+
+multi sub spark-points( $min, $max ) {
+ return( 0, (($max - $min) / 8) );
+}