aboutsummaryrefslogtreecommitdiff
path: root/challenge-179
diff options
context:
space:
mode:
authorMohammad S Anwar <mohammad.anwar@yahoo.com>2022-08-25 22:48:54 +0100
committerMohammad S Anwar <mohammad.anwar@yahoo.com>2022-08-25 22:48:54 +0100
commit6e7350878c0fa4cae0b77d784b5086e428602ed1 (patch)
treeeec31008389946c25336f84041163bc7cb265b09 /challenge-179
parent1adce3293566a3f097c7d980c99e3689631f9f9d (diff)
downloadperlweeklychallenge-club-6e7350878c0fa4cae0b77d784b5086e428602ed1.tar.gz
perlweeklychallenge-club-6e7350878c0fa4cae0b77d784b5086e428602ed1.tar.bz2
perlweeklychallenge-club-6e7350878c0fa4cae0b77d784b5086e428602ed1.zip
- Added solutions by Laurent Rosenfeld.
Diffstat (limited to 'challenge-179')
-rw-r--r--challenge-179/laurent-rosenfeld/blog.txt1
-rw-r--r--challenge-179/laurent-rosenfeld/perl/ch-1.pl9
-rw-r--r--challenge-179/laurent-rosenfeld/perl/ch-2.pl20
-rw-r--r--challenge-179/laurent-rosenfeld/raku/ch-1.raku5
-rw-r--r--challenge-179/laurent-rosenfeld/raku/ch-2.raku7
5 files changed, 42 insertions, 0 deletions
diff --git a/challenge-179/laurent-rosenfeld/blog.txt b/challenge-179/laurent-rosenfeld/blog.txt
new file mode 100644
index 0000000000..524c25926d
--- /dev/null
+++ b/challenge-179/laurent-rosenfeld/blog.txt
@@ -0,0 +1 @@
+http://blogs.perl.org/users/laurent_r/2022/08/perl-weekly-challenge-179-ordinal-numbers-and-unicode-sparkline.html
diff --git a/challenge-179/laurent-rosenfeld/perl/ch-1.pl b/challenge-179/laurent-rosenfeld/perl/ch-1.pl
new file mode 100644
index 0000000000..d1c9c8cb6c
--- /dev/null
+++ b/challenge-179/laurent-rosenfeld/perl/ch-1.pl
@@ -0,0 +1,9 @@
+use strict;
+use warnings;
+use feature qw/say/;
+
+use Lingua::EN::Numbers qw/num2en_ordinal/;
+
+for my $num (11, 62, 99) {
+ say "$num => ", ordinal($num);
+}
diff --git a/challenge-179/laurent-rosenfeld/perl/ch-2.pl b/challenge-179/laurent-rosenfeld/perl/ch-2.pl
new file mode 100644
index 0000000000..35f04675c7
--- /dev/null
+++ b/challenge-179/laurent-rosenfeld/perl/ch-2.pl
@@ -0,0 +1,20 @@
+use strict;
+use warnings;
+use feature qw/say/;
+
+binmode(STDOUT, ":utf8");
+my @bars = map chr, 0x2581 .. 0x2588;
+
+for my $test ([< 2 4 6 8 10 12 10 8 6 4 2>],
+ [<0 1 19 20>], [<0 999 4000 4999 7000 7999>]) {
+ my @test = @$test;
+ my ($min, $max) = (sort {$a <=> $b} @$test)[0, $#test];
+ my $out = "";
+ for my $item (@test) {
+ my $h = @bars * ($item - $min) / ($max - $min);
+ $h = $#bars if $h > $#bars;
+ $out .= $bars[int($h)];
+ }
+ say "@test; min: $min; max: $max.";
+ say $out, "\n";
+}
diff --git a/challenge-179/laurent-rosenfeld/raku/ch-1.raku b/challenge-179/laurent-rosenfeld/raku/ch-1.raku
new file mode 100644
index 0000000000..9dd3211270
--- /dev/null
+++ b/challenge-179/laurent-rosenfeld/raku/ch-1.raku
@@ -0,0 +1,5 @@
+use Lingua::EN::Numbers;
+
+for 11, 62, 99 -> $num {
+ say "$num => ", ordinal($num);
+}
diff --git a/challenge-179/laurent-rosenfeld/raku/ch-2.raku b/challenge-179/laurent-rosenfeld/raku/ch-2.raku
new file mode 100644
index 0000000000..4b7701c8f6
--- /dev/null
+++ b/challenge-179/laurent-rosenfeld/raku/ch-2.raku
@@ -0,0 +1,7 @@
+my @bars = map {.chr}, 0x2581 .. 0x2588;
+for < 2 4 6 8 10 12 10 8 6 4 2>, <0 1 19 20>,
+ <0 999 4000 4999 7000 7999> -> @test {
+ my ($min, $max) = @test.minmax[0,*-1];
+ say "@test[]; min: $min; max: $max.";
+ say join '', @bars[ map { @bars * ($_ - $min) / ($max - $min) min @bars.end }, @test], "\n";
+}