aboutsummaryrefslogtreecommitdiff
path: root/challenge-032/arne-sommer/perl6/abc-float
blob: a444a9e9c6cd59073a3b6dc2b851bb90c7c5f0b9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#! /usr/bin/env raku

unit sub MAIN (Str :$sort where $sort eq any("", "values", "labels") = "");

my $data = { apple => pi, cherry => e, banana => 0.3, junkfood => 0.6 };

generate_bar_graph($data, $sort);

sub generate_bar_graph ($data, $sort)
{
  my $max = %($data).keys>>.chars.max;

  my @keys = %($data).keys;

  if $sort eq "values"
  {
    @keys = @keys.sort({ %($data){$^b} cmp %($data){$^a} });
  }
  elsif $sort eq "labels"
  {
    @keys = @keys.sort;
  }

  for  @keys -> $label
  {
    say "{ " " x ($max - $label.chars) }$label | { "#" x 4 * %($data){$label} }"; 
  }
}