aboutsummaryrefslogtreecommitdiff
path: root/challenge-322/arne-sommer/raku/rank-array
diff options
context:
space:
mode:
Diffstat (limited to 'challenge-322/arne-sommer/raku/rank-array')
-rwxr-xr-xchallenge-322/arne-sommer/raku/rank-array23
1 files changed, 23 insertions, 0 deletions
diff --git a/challenge-322/arne-sommer/raku/rank-array b/challenge-322/arne-sommer/raku/rank-array
new file mode 100755
index 0000000000..991a565819
--- /dev/null
+++ b/challenge-322/arne-sommer/raku/rank-array
@@ -0,0 +1,23 @@
+#! /usr/bin/env raku
+
+unit sub MAIN (*@ints where @ints.elems > 1
+ && all(@ints) ~~ Int,
+ :v(:$verbose));
+
+my @sorted = @ints.sort.squish;
+
+my %rank;
+my $rank = 0;
+
+for @sorted -> $val
+{
+ $rank++;
+
+ %rank{$val} = $rank;
+
+ say ": Int $val has rank $rank" if $verbose;
+}
+
+my @rank = @ints.map({ %rank{$_} });
+
+say "({ @rank.join(", ") })";