diff options
| -rw-r--r-- | challenge-140/mark-anderson/raku/ch-1.raku | 13 | ||||
| -rw-r--r-- | challenge-140/mark-anderson/raku/ch-2.raku | 11 |
2 files changed, 24 insertions, 0 deletions
diff --git a/challenge-140/mark-anderson/raku/ch-1.raku b/challenge-140/mark-anderson/raku/ch-1.raku new file mode 100644 index 0000000000..f723af6bb9 --- /dev/null +++ b/challenge-140/mark-anderson/raku/ch-1.raku @@ -0,0 +1,13 @@ +#!/usr/bin/env raku + +# DCB = Decimal Coded Binary +subset DCB of UInt where /^ <[01]>+ $/; + +sub infix:<b+>(DCB \a, DCB \b) +{ + (a.Str.parse-base(2) + b.Str.parse-base(2)).base(2); +} + +say 11 b+ 1; +say 101 b+ 1; +say 100 b+ 11; diff --git a/challenge-140/mark-anderson/raku/ch-2.raku b/challenge-140/mark-anderson/raku/ch-2.raku new file mode 100644 index 0000000000..4cc7094b29 --- /dev/null +++ b/challenge-140/mark-anderson/raku/ch-2.raku @@ -0,0 +1,11 @@ +#!/usr/bin/env raku + +say kth-element-from-sorted-multiplication-table(2, 3, 4); +say kth-element-from-sorted-multiplication-table(3, 3, 6); + +sub kth-element-from-sorted-multiplication-table(\i, \j, \k) +{ + my @table; + @table[.head; .tail] = .head.succ * .tail.succ for ^i X ^j; + @table.map(|*).sort.[k-1]; +} |
