aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--challenge-172/2colours/raku/ch-2.raku18
1 files changed, 18 insertions, 0 deletions
diff --git a/challenge-172/2colours/raku/ch-2.raku b/challenge-172/2colours/raku/ch-2.raku
new file mode 100644
index 0000000000..141a587750
--- /dev/null
+++ b/challenge-172/2colours/raku/ch-2.raku
@@ -0,0 +1,18 @@
+class IntSample does Associative {
+ has @!data;
+ submethod BUILD(:@data) {
+ @!data = sort @data;
+ }
+ method AT-KEY($scale) {
+ given $scale {
+ when Whatever { @!data[@!data - 1] }
+ when WhateverCode { @!data[.(@!data - 1)] }
+ when Int { @!data[$_] }
+ when * %% 0.5 { (.[$scale.floor] + .[$scale.ceiling]) / 2 given @!data }
+ default { @!data[.round] }
+ }
+ }
+
+}
+
+say IntSample.new(data => $*IN.lines>>.Int){0,*/4,*/2,* * 3/4, *}