From 7ecd63f51bd82456881905ab016848251bc8cf90 Mon Sep 17 00:00:00 2001 From: Mark Anderson Date: Fri, 24 Jul 2020 00:33:12 -0600 Subject: Challenge 70 Solutions --- challenge-070/mark-anderson/raku/ch-1.raku | 21 +++++++++++++++++++++ challenge-070/mark-anderson/raku/ch-2.raku | 21 +++++++++++++++++++++ 2 files changed, 42 insertions(+) create mode 100644 challenge-070/mark-anderson/raku/ch-1.raku create mode 100644 challenge-070/mark-anderson/raku/ch-2.raku diff --git a/challenge-070/mark-anderson/raku/ch-1.raku b/challenge-070/mark-anderson/raku/ch-1.raku new file mode 100644 index 0000000000..4dba5f55dd --- /dev/null +++ b/challenge-070/mark-anderson/raku/ch-1.raku @@ -0,0 +1,21 @@ +#!/usr/bin/env raku + +sub MAIN(Str $S, UInt $C, UInt $O) { + Usage() if $C < 1 or $O < 1 or $O < $C or $S.chars < $C + $O; + + my $N = $S.chars; + + my @S = $S.comb; + + map { @S[$_ % $N, ($_ + $O) % $N] = @S[($_ + $O) % $N, $_ % $N] }, 1 .. $C; + + say @S.join; +} + +sub Usage { + note "Usage: $*PROGRAM-NAME " ~ '$S $C $O'; + + note 'where $C >= 1, $O >= 1, $O >= $C, $S.chars >= $C + $O'; + + exit; +} diff --git a/challenge-070/mark-anderson/raku/ch-2.raku b/challenge-070/mark-anderson/raku/ch-2.raku new file mode 100644 index 0000000000..52ef77aa94 --- /dev/null +++ b/challenge-070/mark-anderson/raku/ch-2.raku @@ -0,0 +1,21 @@ +#!/usr/bin/env raku + +sub MAIN(UInt $N where 2 <= $N <= 5) { + my @A = [0, 1]; + + loop { + state $C = 2; + + my @S1 = @A>>.fmt("%0" ~ $C ~ "b"); + + my @S2 = @A>>.fmt("%0" ~ $C - 1 ~ "b").reverse.map("1" ~ *); + + @S1.append(@S2); + + @A = @S1.map({ ":2<$_>".Int }); #https://tinyurl.com/y3nw4q5j + + last if $C++ == $N; + } + + say @A; +} -- cgit From 1fac03c428eab5649c00beb9e34900b95231756f Mon Sep 17 00:00:00 2001 From: Mark Anderson Date: Fri, 24 Jul 2020 01:19:59 -0600 Subject: removed needless bin2dec and dec2bin lines --- challenge-070/mark-anderson/raku/ch-2.raku | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/challenge-070/mark-anderson/raku/ch-2.raku b/challenge-070/mark-anderson/raku/ch-2.raku index 52ef77aa94..97df7294d4 100644 --- a/challenge-070/mark-anderson/raku/ch-2.raku +++ b/challenge-070/mark-anderson/raku/ch-2.raku @@ -6,16 +6,14 @@ sub MAIN(UInt $N where 2 <= $N <= 5) { loop { state $C = 2; - my @S1 = @A>>.fmt("%0" ~ $C ~ "b"); + my @S1 = @A.map("0" ~ *); - my @S2 = @A>>.fmt("%0" ~ $C - 1 ~ "b").reverse.map("1" ~ *); + my @S2 = @A.reverse.map("1" ~ *); - @S1.append(@S2); - - @A = @S1.map({ ":2<$_>".Int }); #https://tinyurl.com/y3nw4q5j + @A = @S1.append(@S2); last if $C++ == $N; } - say @A; + say @A.map({ ":2<$_>".Int }).Array; #https://tinyurl.com/y3nw4q5j } -- cgit From ca649ced4c0189d05327ac39c0cf81bee6e4db1c Mon Sep 17 00:00:00 2001 From: Mark Anderson Date: Fri, 24 Jul 2020 04:25:17 -0600 Subject: Challenge 70 Solutions --- challenge-070/mark-anderson/raku/ch-2.raku | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/challenge-070/mark-anderson/raku/ch-2.raku b/challenge-070/mark-anderson/raku/ch-2.raku index 97df7294d4..8e0a5c104c 100644 --- a/challenge-070/mark-anderson/raku/ch-2.raku +++ b/challenge-070/mark-anderson/raku/ch-2.raku @@ -3,16 +3,12 @@ sub MAIN(UInt $N where 2 <= $N <= 5) { my @A = [0, 1]; - loop { - state $C = 2; - + for 2..$N { my @S1 = @A.map("0" ~ *); my @S2 = @A.reverse.map("1" ~ *); @A = @S1.append(@S2); - - last if $C++ == $N; } say @A.map({ ":2<$_>".Int }).Array; #https://tinyurl.com/y3nw4q5j -- cgit