From 2603f59ed434830438acfc1417c0e0801931cd2b Mon Sep 17 00:00:00 2001 From: Mark A Date: Mon, 22 Feb 2021 03:32:10 -0700 Subject: initial ch-1.raku --- challenge-101/mark-anderson/raku/ch-1.p6 | 72 ++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 challenge-101/mark-anderson/raku/ch-1.p6 diff --git a/challenge-101/mark-anderson/raku/ch-1.p6 b/challenge-101/mark-anderson/raku/ch-1.p6 new file mode 100644 index 0000000000..403ca98fa8 --- /dev/null +++ b/challenge-101/mark-anderson/raku/ch-1.p6 @@ -0,0 +1,72 @@ +#!/usr/bin/env raku + +use Test; +plan 5; + +is-deeply pack-a-spiral(1..4), [[4, 3], [1, 2]]; +is-deeply pack-a-spiral(1..6), [[6, 5, 4], [1, 2, 3]]; +is-deeply pack-a-spiral(1..12), [[9, 8, 7, 6], [10, 11, 12, 5], [1, 2, 3, 4]]; +is-deeply pack-a-spiral(1..143), +[ +[ 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23], +[ 36, 73, 72, 71, 70, 69, 68, 67, 66, 65, 64, 63, 22], +[ 37, 74, 103, 102, 101, 100, 99, 98, 97, 96, 95, 62, 21], +[ 38, 75, 104, 125, 124, 123, 122, 121, 120, 119, 94, 61, 20], +[ 39, 76, 105, 126, 139, 138, 137, 136, 135, 118, 93, 60, 19], +[ 40, 77, 106, 127, 140, 141, 142, 143, 134, 117, 92, 59, 18], +[ 41, 78, 107, 128, 129, 130, 131, 132, 133, 116, 91, 58, 17], +[ 42, 79, 108, 109, 110, 111, 112, 113, 114, 115, 90, 57, 16], +[ 43, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 56, 15], +[ 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 14], +[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13] +]; +is-deeply pack-a-spiral(1..144), +[ +[ 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23], +[ 35, 72, 71, 70, 69, 68, 67, 66, 65, 64, 63, 22], +[ 36, 73, 102, 101, 100, 99, 98, 97, 96, 95, 62, 21], +[ 37, 74, 103, 124, 123, 122, 121, 120, 119, 94, 61, 20], +[ 38, 75, 104, 125, 138, 137, 136, 135, 118, 93, 60, 19], +[ 39, 76, 105, 126, 139, 144, 143, 134, 117, 92, 59, 18], +[ 40, 77, 106, 127, 140, 141, 142, 133, 116, 91, 58, 17], +[ 41, 78, 107, 128, 129, 130, 131, 132, 115, 90, 57, 16], +[ 42, 79, 108, 109, 110, 111, 112, 113, 114, 89, 56, 15], +[ 43, 80, 81, 82, 83, 84, 85, 86, 87, 88, 55, 14], +[ 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 13], +[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] +]; + +sub pack-a-spiral(@A is copy) +{ + my $f = tightest-factor(@A.elems); + my @k = @A.keys.rotor($f); + @k = spiral(@k.map(*.Array).Array); + @A[@k] = @A; + @A.rotor($f).map(*.Array).reverse.Array; +} + +sub tightest-factor($n) +{ + return 1 if $n.is-prime; + my $s = sqrt($n); + return $s if $s.narrow ~~ UInt; + my @f = grep { $n %% $_ }, 2..$n/2; + return @f[@f/2]; +} + +# +#| code from challenge 88 +# +sub spiral(@matrix) { + my @r; + + while @matrix + { + @r.append: |@matrix.shift; + try { @r.push: .pop } for @matrix; + try @r.append: $_ given @matrix.pop.reverse; + try -> $i { @r.push: .[$i].shift } for .end...0 given @matrix; + } + + @r; +} -- cgit From 7c566a496d9f4cb07d86fbbd6a5b5c49a8faa496 Mon Sep 17 00:00:00 2001 From: Mark A Date: Mon, 22 Feb 2021 03:33:26 -0700 Subject: initial ch-1.raku --- challenge-101/mark-anderson/raku/ch-1.p6 | 72 ------------------------------ challenge-101/mark-anderson/raku/ch-1.raku | 72 ++++++++++++++++++++++++++++++ 2 files changed, 72 insertions(+), 72 deletions(-) delete mode 100644 challenge-101/mark-anderson/raku/ch-1.p6 create mode 100644 challenge-101/mark-anderson/raku/ch-1.raku diff --git a/challenge-101/mark-anderson/raku/ch-1.p6 b/challenge-101/mark-anderson/raku/ch-1.p6 deleted file mode 100644 index 403ca98fa8..0000000000 --- a/challenge-101/mark-anderson/raku/ch-1.p6 +++ /dev/null @@ -1,72 +0,0 @@ -#!/usr/bin/env raku - -use Test; -plan 5; - -is-deeply pack-a-spiral(1..4), [[4, 3], [1, 2]]; -is-deeply pack-a-spiral(1..6), [[6, 5, 4], [1, 2, 3]]; -is-deeply pack-a-spiral(1..12), [[9, 8, 7, 6], [10, 11, 12, 5], [1, 2, 3, 4]]; -is-deeply pack-a-spiral(1..143), -[ -[ 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23], -[ 36, 73, 72, 71, 70, 69, 68, 67, 66, 65, 64, 63, 22], -[ 37, 74, 103, 102, 101, 100, 99, 98, 97, 96, 95, 62, 21], -[ 38, 75, 104, 125, 124, 123, 122, 121, 120, 119, 94, 61, 20], -[ 39, 76, 105, 126, 139, 138, 137, 136, 135, 118, 93, 60, 19], -[ 40, 77, 106, 127, 140, 141, 142, 143, 134, 117, 92, 59, 18], -[ 41, 78, 107, 128, 129, 130, 131, 132, 133, 116, 91, 58, 17], -[ 42, 79, 108, 109, 110, 111, 112, 113, 114, 115, 90, 57, 16], -[ 43, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 56, 15], -[ 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 14], -[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13] -]; -is-deeply pack-a-spiral(1..144), -[ -[ 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23], -[ 35, 72, 71, 70, 69, 68, 67, 66, 65, 64, 63, 22], -[ 36, 73, 102, 101, 100, 99, 98, 97, 96, 95, 62, 21], -[ 37, 74, 103, 124, 123, 122, 121, 120, 119, 94, 61, 20], -[ 38, 75, 104, 125, 138, 137, 136, 135, 118, 93, 60, 19], -[ 39, 76, 105, 126, 139, 144, 143, 134, 117, 92, 59, 18], -[ 40, 77, 106, 127, 140, 141, 142, 133, 116, 91, 58, 17], -[ 41, 78, 107, 128, 129, 130, 131, 132, 115, 90, 57, 16], -[ 42, 79, 108, 109, 110, 111, 112, 113, 114, 89, 56, 15], -[ 43, 80, 81, 82, 83, 84, 85, 86, 87, 88, 55, 14], -[ 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 13], -[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] -]; - -sub pack-a-spiral(@A is copy) -{ - my $f = tightest-factor(@A.elems); - my @k = @A.keys.rotor($f); - @k = spiral(@k.map(*.Array).Array); - @A[@k] = @A; - @A.rotor($f).map(*.Array).reverse.Array; -} - -sub tightest-factor($n) -{ - return 1 if $n.is-prime; - my $s = sqrt($n); - return $s if $s.narrow ~~ UInt; - my @f = grep { $n %% $_ }, 2..$n/2; - return @f[@f/2]; -} - -# -#| code from challenge 88 -# -sub spiral(@matrix) { - my @r; - - while @matrix - { - @r.append: |@matrix.shift; - try { @r.push: .pop } for @matrix; - try @r.append: $_ given @matrix.pop.reverse; - try -> $i { @r.push: .[$i].shift } for .end...0 given @matrix; - } - - @r; -} diff --git a/challenge-101/mark-anderson/raku/ch-1.raku b/challenge-101/mark-anderson/raku/ch-1.raku new file mode 100644 index 0000000000..403ca98fa8 --- /dev/null +++ b/challenge-101/mark-anderson/raku/ch-1.raku @@ -0,0 +1,72 @@ +#!/usr/bin/env raku + +use Test; +plan 5; + +is-deeply pack-a-spiral(1..4), [[4, 3], [1, 2]]; +is-deeply pack-a-spiral(1..6), [[6, 5, 4], [1, 2, 3]]; +is-deeply pack-a-spiral(1..12), [[9, 8, 7, 6], [10, 11, 12, 5], [1, 2, 3, 4]]; +is-deeply pack-a-spiral(1..143), +[ +[ 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23], +[ 36, 73, 72, 71, 70, 69, 68, 67, 66, 65, 64, 63, 22], +[ 37, 74, 103, 102, 101, 100, 99, 98, 97, 96, 95, 62, 21], +[ 38, 75, 104, 125, 124, 123, 122, 121, 120, 119, 94, 61, 20], +[ 39, 76, 105, 126, 139, 138, 137, 136, 135, 118, 93, 60, 19], +[ 40, 77, 106, 127, 140, 141, 142, 143, 134, 117, 92, 59, 18], +[ 41, 78, 107, 128, 129, 130, 131, 132, 133, 116, 91, 58, 17], +[ 42, 79, 108, 109, 110, 111, 112, 113, 114, 115, 90, 57, 16], +[ 43, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 56, 15], +[ 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 14], +[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13] +]; +is-deeply pack-a-spiral(1..144), +[ +[ 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23], +[ 35, 72, 71, 70, 69, 68, 67, 66, 65, 64, 63, 22], +[ 36, 73, 102, 101, 100, 99, 98, 97, 96, 95, 62, 21], +[ 37, 74, 103, 124, 123, 122, 121, 120, 119, 94, 61, 20], +[ 38, 75, 104, 125, 138, 137, 136, 135, 118, 93, 60, 19], +[ 39, 76, 105, 126, 139, 144, 143, 134, 117, 92, 59, 18], +[ 40, 77, 106, 127, 140, 141, 142, 133, 116, 91, 58, 17], +[ 41, 78, 107, 128, 129, 130, 131, 132, 115, 90, 57, 16], +[ 42, 79, 108, 109, 110, 111, 112, 113, 114, 89, 56, 15], +[ 43, 80, 81, 82, 83, 84, 85, 86, 87, 88, 55, 14], +[ 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 13], +[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] +]; + +sub pack-a-spiral(@A is copy) +{ + my $f = tightest-factor(@A.elems); + my @k = @A.keys.rotor($f); + @k = spiral(@k.map(*.Array).Array); + @A[@k] = @A; + @A.rotor($f).map(*.Array).reverse.Array; +} + +sub tightest-factor($n) +{ + return 1 if $n.is-prime; + my $s = sqrt($n); + return $s if $s.narrow ~~ UInt; + my @f = grep { $n %% $_ }, 2..$n/2; + return @f[@f/2]; +} + +# +#| code from challenge 88 +# +sub spiral(@matrix) { + my @r; + + while @matrix + { + @r.append: |@matrix.shift; + try { @r.push: .pop } for @matrix; + try @r.append: $_ given @matrix.pop.reverse; + try -> $i { @r.push: .[$i].shift } for .end...0 given @matrix; + } + + @r; +} -- cgit From 1487c9e86a6bac4bd9189010b8faa0a29dcadb17 Mon Sep 17 00:00:00 2001 From: Mark A Date: Mon, 22 Feb 2021 03:37:46 -0700 Subject: initial ch-1.raku --- challenge-101/mark-anderson/raku/ch-1.raku | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/challenge-101/mark-anderson/raku/ch-1.raku b/challenge-101/mark-anderson/raku/ch-1.raku index 403ca98fa8..d1c945fb0f 100644 --- a/challenge-101/mark-anderson/raku/ch-1.raku +++ b/challenge-101/mark-anderson/raku/ch-1.raku @@ -57,7 +57,8 @@ sub tightest-factor($n) # #| code from challenge 88 # -sub spiral(@matrix) { +sub spiral(@matrix) +{ my @r; while @matrix -- cgit From de25afde24e494e793e94913e952cd6a6c93fa0c Mon Sep 17 00:00:00 2001 From: Mark A Date: Mon, 22 Feb 2021 03:45:15 -0700 Subject: initial ch-1.raku --- challenge-101/mark-anderson/raku/ch-1.raku | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/challenge-101/mark-anderson/raku/ch-1.raku b/challenge-101/mark-anderson/raku/ch-1.raku index d1c945fb0f..ca29c1c78c 100644 --- a/challenge-101/mark-anderson/raku/ch-1.raku +++ b/challenge-101/mark-anderson/raku/ch-1.raku @@ -1,11 +1,12 @@ #!/usr/bin/env raku use Test; -plan 5; +plan 6; is-deeply pack-a-spiral(1..4), [[4, 3], [1, 2]]; is-deeply pack-a-spiral(1..6), [[6, 5, 4], [1, 2, 3]]; is-deeply pack-a-spiral(1..12), [[9, 8, 7, 6], [10, 11, 12, 5], [1, 2, 3, 4]]; +is-deeply pack-a-spiral(1..17), [[1..17],]; is-deeply pack-a-spiral(1..143), [ [ 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23], @@ -47,7 +48,7 @@ sub pack-a-spiral(@A is copy) sub tightest-factor($n) { - return 1 if $n.is-prime; + return $n if $n.is-prime; my $s = sqrt($n); return $s if $s.narrow ~~ UInt; my @f = grep { $n %% $_ }, 2..$n/2; -- cgit From 087a3e000c8d0363b2b094384c166c4a262ba0bc Mon Sep 17 00:00:00 2001 From: Mark A Date: Mon, 22 Feb 2021 04:05:38 -0700 Subject: initial ch-1.raku --- challenge-101/mark-anderson/raku/ch-1.raku | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/challenge-101/mark-anderson/raku/ch-1.raku b/challenge-101/mark-anderson/raku/ch-1.raku index ca29c1c78c..70d773f28c 100644 --- a/challenge-101/mark-anderson/raku/ch-1.raku +++ b/challenge-101/mark-anderson/raku/ch-1.raku @@ -1,12 +1,13 @@ #!/usr/bin/env raku use Test; -plan 6; +plan 7; -is-deeply pack-a-spiral(1..4), [[4, 3], [1, 2]]; -is-deeply pack-a-spiral(1..6), [[6, 5, 4], [1, 2, 3]]; -is-deeply pack-a-spiral(1..12), [[9, 8, 7, 6], [10, 11, 12, 5], [1, 2, 3, 4]]; -is-deeply pack-a-spiral(1..17), [[1..17],]; +is-deeply pack-a-spiral(1..4), [[4,3], [1,2]]; +is-deeply pack-a-spiral(1..6), [[6,5,4], [1,2,3]]; +is-deeply pack-a-spiral(1..12), [[9,8,7,6], [10,11,12,5], [1,2,3,4]]; +is-deeply pack-a-spiral(1..17), [[1..17],]; +is-deeply pack-a-spiral("A".."Z"), [["Z"..."N"], ["A".."M"]]; is-deeply pack-a-spiral(1..143), [ [ 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23], -- cgit From 72e0fca35d157f16d2bd65d5c3c1be18c72785c9 Mon Sep 17 00:00:00 2001 From: Mark A Date: Mon, 22 Feb 2021 04:14:13 -0700 Subject: initial ch-1.raku --- challenge-101/mark-anderson/raku/ch-1.raku | 46 +++++++++++++++--------------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/challenge-101/mark-anderson/raku/ch-1.raku b/challenge-101/mark-anderson/raku/ch-1.raku index 70d773f28c..60d1da0198 100644 --- a/challenge-101/mark-anderson/raku/ch-1.raku +++ b/challenge-101/mark-anderson/raku/ch-1.raku @@ -10,32 +10,32 @@ is-deeply pack-a-spiral(1..17), [[1..17],]; is-deeply pack-a-spiral("A".."Z"), [["Z"..."N"], ["A".."M"]]; is-deeply pack-a-spiral(1..143), [ -[ 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23], -[ 36, 73, 72, 71, 70, 69, 68, 67, 66, 65, 64, 63, 22], -[ 37, 74, 103, 102, 101, 100, 99, 98, 97, 96, 95, 62, 21], -[ 38, 75, 104, 125, 124, 123, 122, 121, 120, 119, 94, 61, 20], -[ 39, 76, 105, 126, 139, 138, 137, 136, 135, 118, 93, 60, 19], -[ 40, 77, 106, 127, 140, 141, 142, 143, 134, 117, 92, 59, 18], -[ 41, 78, 107, 128, 129, 130, 131, 132, 133, 116, 91, 58, 17], -[ 42, 79, 108, 109, 110, 111, 112, 113, 114, 115, 90, 57, 16], -[ 43, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 56, 15], -[ 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 14], -[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13] +[35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23], +[36, 73, 72, 71, 70, 69, 68, 67, 66, 65, 64, 63, 22], +[37, 74, 103, 102, 101, 100, 99, 98, 97, 96, 95, 62, 21], +[38, 75, 104, 125, 124, 123, 122, 121, 120, 119, 94, 61, 20], +[39, 76, 105, 126, 139, 138, 137, 136, 135, 118, 93, 60, 19], +[40, 77, 106, 127, 140, 141, 142, 143, 134, 117, 92, 59, 18], +[41, 78, 107, 128, 129, 130, 131, 132, 133, 116, 91, 58, 17], +[42, 79, 108, 109, 110, 111, 112, 113, 114, 115, 90, 57, 16], +[43, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 56, 15], +[44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 14], +[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13] ]; is-deeply pack-a-spiral(1..144), [ -[ 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23], -[ 35, 72, 71, 70, 69, 68, 67, 66, 65, 64, 63, 22], -[ 36, 73, 102, 101, 100, 99, 98, 97, 96, 95, 62, 21], -[ 37, 74, 103, 124, 123, 122, 121, 120, 119, 94, 61, 20], -[ 38, 75, 104, 125, 138, 137, 136, 135, 118, 93, 60, 19], -[ 39, 76, 105, 126, 139, 144, 143, 134, 117, 92, 59, 18], -[ 40, 77, 106, 127, 140, 141, 142, 133, 116, 91, 58, 17], -[ 41, 78, 107, 128, 129, 130, 131, 132, 115, 90, 57, 16], -[ 42, 79, 108, 109, 110, 111, 112, 113, 114, 89, 56, 15], -[ 43, 80, 81, 82, 83, 84, 85, 86, 87, 88, 55, 14], -[ 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 13], -[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] +[34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23], +[35, 72, 71, 70, 69, 68, 67, 66, 65, 64, 63, 22], +[36, 73, 102, 101, 100, 99, 98, 97, 96, 95, 62, 21], +[37, 74, 103, 124, 123, 122, 121, 120, 119, 94, 61, 20], +[38, 75, 104, 125, 138, 137, 136, 135, 118, 93, 60, 19], +[39, 76, 105, 126, 139, 144, 143, 134, 117, 92, 59, 18], +[40, 77, 106, 127, 140, 141, 142, 133, 116, 91, 58, 17], +[41, 78, 107, 128, 129, 130, 131, 132, 115, 90, 57, 16], +[42, 79, 108, 109, 110, 111, 112, 113, 114, 89, 56, 15], +[43, 80, 81, 82, 83, 84, 85, 86, 87, 88, 55, 14], +[44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 13], +[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] ]; sub pack-a-spiral(@A is copy) -- cgit From 73747d67fa51d1f79c025166ee131074f2a144a5 Mon Sep 17 00:00:00 2001 From: Mark A Date: Mon, 22 Feb 2021 04:29:03 -0700 Subject: initial ch-1.raku --- challenge-101/mark-anderson/raku/ch-1.raku | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/challenge-101/mark-anderson/raku/ch-1.raku b/challenge-101/mark-anderson/raku/ch-1.raku index 60d1da0198..030a85523d 100644 --- a/challenge-101/mark-anderson/raku/ch-1.raku +++ b/challenge-101/mark-anderson/raku/ch-1.raku @@ -57,18 +57,18 @@ sub tightest-factor($n) } # -#| code from challenge 88 +# code from challenge 88 # -sub spiral(@matrix) +sub spiral(@m) { my @r; - while @matrix + while @m { - @r.append: |@matrix.shift; - try { @r.push: .pop } for @matrix; - try @r.append: $_ given @matrix.pop.reverse; - try -> $i { @r.push: .[$i].shift } for .end...0 given @matrix; + @r.append: |@m.shift; + try { @r.push: .pop } for @m; + try @r.append: $_ given @m.pop.reverse; + try -> $i { @r.push: .[$i].shift } for .end...0 given @m; } @r; -- cgit From 25f96a3c6efcc8f4342486386b3833dce835a1e2 Mon Sep 17 00:00:00 2001 From: Mark A Date: Mon, 22 Feb 2021 10:29:52 -0700 Subject: Challenge 101 Solutions (Raku) --- challenge-101/mark-anderson/raku/ch-1.raku | 6 ++--- challenge-101/mark-anderson/raku/ch-2.raku | 35 ++++++++++++++++++++++++++++++ 2 files changed, 38 insertions(+), 3 deletions(-) create mode 100644 challenge-101/mark-anderson/raku/ch-2.raku diff --git a/challenge-101/mark-anderson/raku/ch-1.raku b/challenge-101/mark-anderson/raku/ch-1.raku index 030a85523d..00dbaa4d0c 100644 --- a/challenge-101/mark-anderson/raku/ch-1.raku +++ b/challenge-101/mark-anderson/raku/ch-1.raku @@ -40,7 +40,7 @@ is-deeply pack-a-spiral(1..144), sub pack-a-spiral(@A is copy) { - my $f = tightest-factor(@A.elems); + my $f = tightest-factor(+@A); my @k = @A.keys.rotor($f); @k = spiral(@k.map(*.Array).Array); @A[@k] = @A; @@ -52,8 +52,8 @@ sub tightest-factor($n) return $n if $n.is-prime; my $s = sqrt($n); return $s if $s.narrow ~~ UInt; - my @f = grep { $n %% $_ }, 2..$n/2; - return @f[@f/2]; + my @f = grep { $n %% $_ }, 2..$n div 2; + return @f[+@f div 2]; } # diff --git a/challenge-101/mark-anderson/raku/ch-2.raku b/challenge-101/mark-anderson/raku/ch-2.raku new file mode 100644 index 0000000000..d06aaa6861 --- /dev/null +++ b/challenge-101/mark-anderson/raku/ch-2.raku @@ -0,0 +1,35 @@ +#!/usr/bin/env raku + +# With help from https://www.geeksforgeeks.org/check-whether-a-given-point-lies-inside-a-triangle-or-not/ + +use Test; +plan 3; + +nok contains-origin((1,1), (0,2), (0,3)); +ok contains-origin((1,1), (-1,1), (0,-3)); +ok contains-origin((0,1), (2,0), (-6,0)); + +class point +{ + has Int $.x; + has Int $.y; +} + +sub area($a, $b, $c) +{ + abs(($a.x * ($b.y - $c.y)) + + ($b.x * ($c.y - $a.y)) + + ($c.x * ($a.y - $b.y))) / 2; +} + +sub contains-origin($A, $B, $C) +{ + my $a = point.new(x => $A[0], y => $A[1]); + my $b = point.new(x => $B[0], y => $B[1]); + my $c = point.new(x => $C[0], y => $C[1]); + my $p = point.new(:0x, :0y); + + .UInt given area($a, $b, $c) == area($a, $b, $p) + + area($b, $c, $p) + + area($a, $c, $p); +} -- cgit From 7608715885de668abe41e8147eb66846bbbffa5b Mon Sep 17 00:00:00 2001 From: Mark A Date: Mon, 22 Feb 2021 10:45:09 -0700 Subject: Challenge 101 Solutions (Raku) --- challenge-101/mark-anderson/raku/ch-2.raku | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/challenge-101/mark-anderson/raku/ch-2.raku b/challenge-101/mark-anderson/raku/ch-2.raku index d06aaa6861..ae397b5a50 100644 --- a/challenge-101/mark-anderson/raku/ch-2.raku +++ b/challenge-101/mark-anderson/raku/ch-2.raku @@ -5,9 +5,9 @@ use Test; plan 3; -nok contains-origin((1,1), (0,2), (0,3)); -ok contains-origin((1,1), (-1,1), (0,-3)); -ok contains-origin((0,1), (2,0), (-6,0)); +nok contains-origin((1, 1), ( 0, 2), ( 0, 3)); +ok contains-origin((1, 1), (-1, 1), ( 0, -3)); +ok contains-origin((0, 1), ( 2, 0), (-6, 0)); class point { -- cgit From a072662aae1b2b666c9f1094c05685310435cb82 Mon Sep 17 00:00:00 2001 From: Mark A Date: Tue, 23 Feb 2021 01:57:32 -0700 Subject: Challenge 101 Solutions (Raku) --- challenge-101/mark-anderson/raku/ch-1.raku | 107 ++++++++++++----------------- 1 file changed, 45 insertions(+), 62 deletions(-) diff --git a/challenge-101/mark-anderson/raku/ch-1.raku b/challenge-101/mark-anderson/raku/ch-1.raku index 00dbaa4d0c..b019859943 100644 --- a/challenge-101/mark-anderson/raku/ch-1.raku +++ b/challenge-101/mark-anderson/raku/ch-1.raku @@ -1,75 +1,58 @@ #!/usr/bin/env raku use Test; -plan 7; +plan 6; -is-deeply pack-a-spiral(1..4), [[4,3], [1,2]]; -is-deeply pack-a-spiral(1..6), [[6,5,4], [1,2,3]]; -is-deeply pack-a-spiral(1..12), [[9,8,7,6], [10,11,12,5], [1,2,3,4]]; -is-deeply pack-a-spiral(1..17), [[1..17],]; -is-deeply pack-a-spiral("A".."Z"), [["Z"..."N"], ["A".."M"]]; +is-deeply pack-a-spiral(1..4), ((4,3), (1,2)); +is-deeply pack-a-spiral(1..6), ((6,5,4), (1,2,3)); +is-deeply pack-a-spiral(1..12), ((9,8,7,6), (10,11,12,5), (1,2,3,4)); +is-deeply pack-a-spiral(1..13), ((1,2,3,4,5,6,7,8,9,10,11,12,13),); is-deeply pack-a-spiral(1..143), -[ -[35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23], -[36, 73, 72, 71, 70, 69, 68, 67, 66, 65, 64, 63, 22], -[37, 74, 103, 102, 101, 100, 99, 98, 97, 96, 95, 62, 21], -[38, 75, 104, 125, 124, 123, 122, 121, 120, 119, 94, 61, 20], -[39, 76, 105, 126, 139, 138, 137, 136, 135, 118, 93, 60, 19], -[40, 77, 106, 127, 140, 141, 142, 143, 134, 117, 92, 59, 18], -[41, 78, 107, 128, 129, 130, 131, 132, 133, 116, 91, 58, 17], -[42, 79, 108, 109, 110, 111, 112, 113, 114, 115, 90, 57, 16], -[43, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 56, 15], -[44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 14], -[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13] -]; +( +(35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23), +(36, 73, 72, 71, 70, 69, 68, 67, 66, 65, 64, 63, 22), +(37, 74, 103, 102, 101, 100, 99, 98, 97, 96, 95, 62, 21), +(38, 75, 104, 125, 124, 123, 122, 121, 120, 119, 94, 61, 20), +(39, 76, 105, 126, 139, 138, 137, 136, 135, 118, 93, 60, 19), +(40, 77, 106, 127, 140, 141, 142, 143, 134, 117, 92, 59, 18), +(41, 78, 107, 128, 129, 130, 131, 132, 133, 116, 91, 58, 17), +(42, 79, 108, 109, 110, 111, 112, 113, 114, 115, 90, 57, 16), +(43, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 56, 15), +(44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 14), +( 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13) +); is-deeply pack-a-spiral(1..144), -[ -[34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23], -[35, 72, 71, 70, 69, 68, 67, 66, 65, 64, 63, 22], -[36, 73, 102, 101, 100, 99, 98, 97, 96, 95, 62, 21], -[37, 74, 103, 124, 123, 122, 121, 120, 119, 94, 61, 20], -[38, 75, 104, 125, 138, 137, 136, 135, 118, 93, 60, 19], -[39, 76, 105, 126, 139, 144, 143, 134, 117, 92, 59, 18], -[40, 77, 106, 127, 140, 141, 142, 133, 116, 91, 58, 17], -[41, 78, 107, 128, 129, 130, 131, 132, 115, 90, 57, 16], -[42, 79, 108, 109, 110, 111, 112, 113, 114, 89, 56, 15], -[43, 80, 81, 82, 83, 84, 85, 86, 87, 88, 55, 14], -[44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 13], -[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] -]; +( +(34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23), +(35, 72, 71, 70, 69, 68, 67, 66, 65, 64, 63, 22), +(36, 73, 102, 101, 100, 99, 98, 97, 96, 95, 62, 21), +(37, 74, 103, 124, 123, 122, 121, 120, 119, 94, 61, 20), +(38, 75, 104, 125, 138, 137, 136, 135, 118, 93, 60, 19), +(39, 76, 105, 126, 139, 144, 143, 134, 117, 92, 59, 18), +(40, 77, 106, 127, 140, 141, 142, 133, 116, 91, 58, 17), +(41, 78, 107, 128, 129, 130, 131, 132, 115, 90, 57, 16), +(42, 79, 108, 109, 110, 111, 112, 113, 114, 89, 56, 15), +(43, 80, 81, 82, 83, 84, 85, 86, 87, 88, 55, 14), +(44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 13), +( 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12) +); -sub pack-a-spiral(@A is copy) +sub pack-a-spiral(@list is copy) { - my $f = tightest-factor(+@A); - my @k = @A.keys.rotor($f); - @k = spiral(@k.map(*.Array).Array); - @A[@k] = @A; - @A.rotor($f).map(*.Array).reverse.Array; -} - -sub tightest-factor($n) -{ - return $n if $n.is-prime; - my $s = sqrt($n); - return $s if $s.narrow ~~ UInt; - my @f = grep { $n %% $_ }, 2..$n div 2; - return @f[+@f div 2]; -} + my @f = grep { +@list %% $_ }, 2..+@list div 2; + my $f = @f[+@f div 2] // +@list; -# -# code from challenge 88 -# -sub spiral(@m) -{ - my @r; + my @matrix = @list.keys.rotor($f).map(*.Array); + my @keys; - while @m + while @matrix { - @r.append: |@m.shift; - try { @r.push: .pop } for @m; - try @r.append: $_ given @m.pop.reverse; - try -> $i { @r.push: .[$i].shift } for .end...0 given @m; + @keys.append: @matrix.pop.flat; + try @keys.push: @matrix[$_].pop for @matrix.end...0; + try @keys.push: |@matrix.shift.reverse; + try @keys.push: @matrix[$_].shift for ^@matrix; } - @r; -} + @list[@keys] = @list; + @list.rotor($f); +} -- cgit From 86f0142ea304b2bd590ed4a1d589c61ec5ce3457 Mon Sep 17 00:00:00 2001 From: Mark A Date: Tue, 23 Feb 2021 02:03:24 -0700 Subject: Challenge 101 Solutions (Raku) --- challenge-101/mark-anderson/raku/ch-1.raku | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/challenge-101/mark-anderson/raku/ch-1.raku b/challenge-101/mark-anderson/raku/ch-1.raku index b019859943..5f203c95ea 100644 --- a/challenge-101/mark-anderson/raku/ch-1.raku +++ b/challenge-101/mark-anderson/raku/ch-1.raku @@ -39,10 +39,10 @@ is-deeply pack-a-spiral(1..144), sub pack-a-spiral(@list is copy) { - my @f = grep { +@list %% $_ }, 2..+@list div 2; - my $f = @f[+@f div 2] // +@list; + my @factors = grep { +@list %% $_ }, 2..+@list div 2; + my $factor = @factors[+@factors div 2] // +@list; - my @matrix = @list.keys.rotor($f).map(*.Array); + my @matrix = @list.keys.rotor($factor).map(*.Array); my @keys; while @matrix @@ -54,5 +54,5 @@ sub pack-a-spiral(@list is copy) } @list[@keys] = @list; - @list.rotor($f); + @list.rotor($factor); } -- cgit From 1d0ca484e9a823e01631de0ce4df580efa73e6e0 Mon Sep 17 00:00:00 2001 From: Mark A Date: Tue, 23 Feb 2021 02:13:48 -0700 Subject: Challenge 101 Solutions (Raku) --- challenge-101/mark-anderson/raku/ch-2.raku | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/challenge-101/mark-anderson/raku/ch-2.raku b/challenge-101/mark-anderson/raku/ch-2.raku index ae397b5a50..f173cc3c62 100644 --- a/challenge-101/mark-anderson/raku/ch-2.raku +++ b/challenge-101/mark-anderson/raku/ch-2.raku @@ -5,7 +5,7 @@ use Test; plan 3; -nok contains-origin((1, 1), ( 0, 2), ( 0, 3)); +nok contains-origin((0, 1), ( 1, 2), ( 2, 2)); ok contains-origin((1, 1), (-1, 1), ( 0, -3)); ok contains-origin((0, 1), ( 2, 0), (-6, 0)); -- cgit From 8154b398d1aabe7acf0f72c0b6de82a782243542 Mon Sep 17 00:00:00 2001 From: Mark A Date: Tue, 23 Feb 2021 02:18:22 -0700 Subject: Challenge 101 Solutions (Raku) --- challenge-101/mark-anderson/raku/ch-2.raku | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/challenge-101/mark-anderson/raku/ch-2.raku b/challenge-101/mark-anderson/raku/ch-2.raku index f173cc3c62..177bb5f6fd 100644 --- a/challenge-101/mark-anderson/raku/ch-2.raku +++ b/challenge-101/mark-anderson/raku/ch-2.raku @@ -5,7 +5,7 @@ use Test; plan 3; -nok contains-origin((0, 1), ( 1, 2), ( 2, 2)); +nok contains-origin((0, 1), ( 1, 0), ( 2, 2)); ok contains-origin((1, 1), (-1, 1), ( 0, -3)); ok contains-origin((0, 1), ( 2, 0), (-6, 0)); -- cgit From 2a0eb2fc542ace096233c2c8e3f99538c1d9316e Mon Sep 17 00:00:00 2001 From: Mark A Date: Tue, 23 Feb 2021 06:26:09 -0700 Subject: Challenge 101 Solutions (Raku) --- challenge-101/mark-anderson/raku/ch-1.raku | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/challenge-101/mark-anderson/raku/ch-1.raku b/challenge-101/mark-anderson/raku/ch-1.raku index 5f203c95ea..f84c2c2454 100644 --- a/challenge-101/mark-anderson/raku/ch-1.raku +++ b/challenge-101/mark-anderson/raku/ch-1.raku @@ -37,10 +37,24 @@ is-deeply pack-a-spiral(1..144), ( 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12) ); +sub tightest-factor($n) +{ + my @factors; + + for 1..sqrt($n) -> $i + { + if $n %% $i + { + @factors.push: ($i, $n div $i); + } + } + + @factors.sort({.[1] - .[0]}).head.tail; +} + sub pack-a-spiral(@list is copy) { - my @factors = grep { +@list %% $_ }, 2..+@list div 2; - my $factor = @factors[+@factors div 2] // +@list; + my $factor = tightest-factor(+@list); my @matrix = @list.keys.rotor($factor).map(*.Array); my @keys; -- cgit From 39461cb6b719538c949565da3e31e52837d06522 Mon Sep 17 00:00:00 2001 From: Mark A Date: Tue, 23 Feb 2021 06:30:52 -0700 Subject: Challenge 101 Solutions (Raku) --- challenge-101/mark-anderson/raku/ch-1.raku | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/challenge-101/mark-anderson/raku/ch-1.raku b/challenge-101/mark-anderson/raku/ch-1.raku index f84c2c2454..c3cd1bf13c 100644 --- a/challenge-101/mark-anderson/raku/ch-1.raku +++ b/challenge-101/mark-anderson/raku/ch-1.raku @@ -43,10 +43,7 @@ sub tightest-factor($n) for 1..sqrt($n) -> $i { - if $n %% $i - { - @factors.push: ($i, $n div $i); - } + @factors.push: ($i, $n div $i) if $n %% $i; } @factors.sort({.[1] - .[0]}).head.tail; -- cgit From 1e33ff8234de1eb7ee821799e5aa5db91db1e481 Mon Sep 17 00:00:00 2001 From: Mark A Date: Tue, 23 Feb 2021 06:40:53 -0700 Subject: Challenge 101 Solutions (Raku) --- challenge-101/mark-anderson/raku/ch-1.raku | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/challenge-101/mark-anderson/raku/ch-1.raku b/challenge-101/mark-anderson/raku/ch-1.raku index c3cd1bf13c..e07cbc1045 100644 --- a/challenge-101/mark-anderson/raku/ch-1.raku +++ b/challenge-101/mark-anderson/raku/ch-1.raku @@ -46,7 +46,7 @@ sub tightest-factor($n) @factors.push: ($i, $n div $i) if $n %% $i; } - @factors.sort({.[1] - .[0]}).head.tail; + @factors.tail.tail; } sub pack-a-spiral(@list is copy) -- cgit From 5cbc7ad272eef877ff208d79d911497774cac897 Mon Sep 17 00:00:00 2001 From: Mark A Date: Tue, 23 Feb 2021 06:50:42 -0700 Subject: Challenge 101 Solutions (Raku) --- challenge-101/mark-anderson/raku/ch-1.raku | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/challenge-101/mark-anderson/raku/ch-1.raku b/challenge-101/mark-anderson/raku/ch-1.raku index e07cbc1045..678437052d 100644 --- a/challenge-101/mark-anderson/raku/ch-1.raku +++ b/challenge-101/mark-anderson/raku/ch-1.raku @@ -43,10 +43,10 @@ sub tightest-factor($n) for 1..sqrt($n) -> $i { - @factors.push: ($i, $n div $i) if $n %% $i; + @factors.push: $n div $i if $n %% $i; } - @factors.tail.tail; + @factors.tail; } sub pack-a-spiral(@list is copy) -- cgit From 0507f492e32374cb2555400c49461673ead24cb3 Mon Sep 17 00:00:00 2001 From: Mark A Date: Tue, 23 Feb 2021 07:12:48 -0700 Subject: Challenge 101 Solutions (Raku) --- challenge-101/mark-anderson/raku/ch-1.raku | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/challenge-101/mark-anderson/raku/ch-1.raku b/challenge-101/mark-anderson/raku/ch-1.raku index 678437052d..3184ca7f2c 100644 --- a/challenge-101/mark-anderson/raku/ch-1.raku +++ b/challenge-101/mark-anderson/raku/ch-1.raku @@ -58,10 +58,10 @@ sub pack-a-spiral(@list is copy) while @matrix { - @keys.append: @matrix.pop.flat; - try @keys.push: @matrix[$_].pop for @matrix.end...0; - try @keys.push: |@matrix.shift.reverse; - try @keys.push: @matrix[$_].shift for ^@matrix; + @keys.append: @matrix.pop.flat; + try @keys.push: @matrix[$_].pop for @matrix.end...0; + try @keys.append: @matrix.shift.flat.reverse; + try @keys.push: @matrix[$_].shift for ^@matrix; } @list[@keys] = @list; -- cgit From 8f2c071ae96ad268ca5c6426b5e9448312cf8fd0 Mon Sep 17 00:00:00 2001 From: Mark A Date: Tue, 23 Feb 2021 08:28:30 -0700 Subject: Challenge 101 Solutions (Raku) --- challenge-101/mark-anderson/raku/ch-1.raku | 15 ++------------- challenge-101/mark-anderson/raku/test.raku | 9 +++++++++ 2 files changed, 11 insertions(+), 13 deletions(-) create mode 100644 challenge-101/mark-anderson/raku/test.raku diff --git a/challenge-101/mark-anderson/raku/ch-1.raku b/challenge-101/mark-anderson/raku/ch-1.raku index 3184ca7f2c..69d0f1d789 100644 --- a/challenge-101/mark-anderson/raku/ch-1.raku +++ b/challenge-101/mark-anderson/raku/ch-1.raku @@ -37,21 +37,10 @@ is-deeply pack-a-spiral(1..144), ( 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12) ); -sub tightest-factor($n) -{ - my @factors; - - for 1..sqrt($n) -> $i - { - @factors.push: $n div $i if $n %% $i; - } - - @factors.tail; -} - sub pack-a-spiral(@list is copy) { - my $factor = tightest-factor(+@list); + my $factor = .tail given gather take +@list div $_ if +@list %% $_ + for 1..sqrt(+@list); my @matrix = @list.keys.rotor($factor).map(*.Array); my @keys; diff --git a/challenge-101/mark-anderson/raku/test.raku b/challenge-101/mark-anderson/raku/test.raku new file mode 100644 index 0000000000..8743d6c38e --- /dev/null +++ b/challenge-101/mark-anderson/raku/test.raku @@ -0,0 +1,9 @@ +#!/usr/bin/env raku + +say tightest-factor(99); + +sub tightest-factor($n) +{ + .tail given gather take $n div $_ if $n %% $_ for 1..sqrt($n); + +} -- cgit From 6c987c49ef7eff0b96fa1b8cab1628e120ab923f Mon Sep 17 00:00:00 2001 From: Mark A Date: Tue, 23 Feb 2021 08:30:19 -0700 Subject: Challenge 101 Solutions (Raku) --- challenge-101/mark-anderson/raku/test.raku | 9 --------- 1 file changed, 9 deletions(-) delete mode 100644 challenge-101/mark-anderson/raku/test.raku diff --git a/challenge-101/mark-anderson/raku/test.raku b/challenge-101/mark-anderson/raku/test.raku deleted file mode 100644 index 8743d6c38e..0000000000 --- a/challenge-101/mark-anderson/raku/test.raku +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env raku - -say tightest-factor(99); - -sub tightest-factor($n) -{ - .tail given gather take $n div $_ if $n %% $_ for 1..sqrt($n); - -} -- cgit From c975ab6446e1bc054d3ccdc4a3a4cdbdb9f5078a Mon Sep 17 00:00:00 2001 From: Mark A Date: Tue, 23 Feb 2021 10:10:39 -0700 Subject: Challenge 101 Solutions (Raku) --- challenge-101/mark-anderson/raku/ch-1.raku | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/challenge-101/mark-anderson/raku/ch-1.raku b/challenge-101/mark-anderson/raku/ch-1.raku index 69d0f1d789..a83ad343c5 100644 --- a/challenge-101/mark-anderson/raku/ch-1.raku +++ b/challenge-101/mark-anderson/raku/ch-1.raku @@ -39,8 +39,8 @@ is-deeply pack-a-spiral(1..144), sub pack-a-spiral(@list is copy) { - my $factor = .tail given gather take +@list div $_ if +@list %% $_ - for 1..sqrt(+@list); + my $factor = .tail given map { if +@list %% $_ { +@list div $_ }}, + 1..sqrt(+@list); my @matrix = @list.keys.rotor($factor).map(*.Array); my @keys; -- cgit From 163c32398414b71284e19f9ebf5ba1ed9b671a98 Mon Sep 17 00:00:00 2001 From: Mark A Date: Tue, 23 Feb 2021 10:16:40 -0700 Subject: Challenge 101 Solutions (Raku) --- challenge-101/mark-anderson/raku/ch-1.raku | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/challenge-101/mark-anderson/raku/ch-1.raku b/challenge-101/mark-anderson/raku/ch-1.raku index a83ad343c5..1d59cfa371 100644 --- a/challenge-101/mark-anderson/raku/ch-1.raku +++ b/challenge-101/mark-anderson/raku/ch-1.raku @@ -39,7 +39,7 @@ is-deeply pack-a-spiral(1..144), sub pack-a-spiral(@list is copy) { - my $factor = .tail given map { if +@list %% $_ { +@list div $_ }}, + my $factor = .tail given map { +@list div $_ if +@list %% $_ }, 1..sqrt(+@list); my @matrix = @list.keys.rotor($factor).map(*.Array); -- cgit From 826573f083db1ae1a9274934d222bbe416d2b355 Mon Sep 17 00:00:00 2001 From: Mark A Date: Tue, 23 Feb 2021 10:27:26 -0700 Subject: Challenge 101 Solutions (Raku) --- challenge-101/mark-anderson/raku/ch-1.raku | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/challenge-101/mark-anderson/raku/ch-1.raku b/challenge-101/mark-anderson/raku/ch-1.raku index 1d59cfa371..f75cf266b0 100644 --- a/challenge-101/mark-anderson/raku/ch-1.raku +++ b/challenge-101/mark-anderson/raku/ch-1.raku @@ -39,8 +39,8 @@ is-deeply pack-a-spiral(1..144), sub pack-a-spiral(@list is copy) { - my $factor = .tail given map { +@list div $_ if +@list %% $_ }, - 1..sqrt(+@list); + my $factor = .tail given map { +@list div $_ if @list %% $_ }, + 1..sqrt(@list); my @matrix = @list.keys.rotor($factor).map(*.Array); my @keys; -- cgit