diff options
| -rw-r--r-- | challenge-116/wambash/raku/ch-1.raku | 28 | ||||
| -rw-r--r-- | challenge-116/wambash/raku/ch-2.raku | 20 |
2 files changed, 48 insertions, 0 deletions
diff --git a/challenge-116/wambash/raku/ch-1.raku b/challenge-116/wambash/raku/ch-1.raku new file mode 100644 index 0000000000..a0c594aa46 --- /dev/null +++ b/challenge-116/wambash/raku/ch-1.raku @@ -0,0 +1,28 @@ +#!/usr/bin/env raku + +sub get-adept ($d, $s) { + ([\~] $d .. *) Z=> [\,] $d .. * + andthen .first: *.key.join.chars ≥ $s.chars +} + +my regex number-sequence { + ^ + (\d+?)\d*: + & + <{with get-adept($0.Int,$/.orig) { make .value; .key } }> + $ +} + +multi MAIN ( Int $n ) { + say $n.match( &number-sequence ).made.fmt: '%d',',' +} + +multi MAIN (Bool :test($)) { + use Test; + is get-adept(12, 12131), '121314' => <12 13 14>; + is '1234'.match( &number-sequence ).made, <1 2 3 4>; + is '91011'.match( &number-sequence ).made, <9 10 11>; + is '10203'.match( &number-sequence ).made, <10203>; + is '12131214'.match( &number-sequence).made, <1213 1214>; + done-testing; +} diff --git a/challenge-116/wambash/raku/ch-2.raku b/challenge-116/wambash/raku/ch-2.raku new file mode 100644 index 0000000000..9a97cc9c87 --- /dev/null +++ b/challenge-116/wambash/raku/ch-2.raku @@ -0,0 +1,20 @@ +#!/usr/bin/env raku + +sub sum-of-squares ($n) { + $n.comb + andthen .map: *² + andthen .sum + andthen $_ == .sqrt.Int**2 +} + +multi MAIN ( Int $n ) { + say +so sum-of-squares($n) +} + +multi MAIN (Bool :test($)) { + use Test; + is sum-of-squares(34),True; + is sum-of-squares(50),True; + is sum-of-squares(52),False; + done-testing; +} |
