aboutsummaryrefslogtreecommitdiff
path: root/challenge-061
diff options
context:
space:
mode:
authorchirvasitua <stuart-little@users.noreply.github.com>2020-11-08 14:42:45 -0500
committerchirvasitua <stuart-little@users.noreply.github.com>2020-11-08 14:42:45 -0500
commit313334f8cfb42059e61aeb74b2fc05db43ab1653 (patch)
tree3aedb58c66e2c89685504bf8c112e7a6fdf9ded4 /challenge-061
parent5b90afe957e0cff83a1d1cf7381a195a98b1f1ca (diff)
downloadperlweeklychallenge-club-313334f8cfb42059e61aeb74b2fc05db43ab1653.tar.gz
perlweeklychallenge-club-313334f8cfb42059e61aeb74b2fc05db43ab1653.tar.bz2
perlweeklychallenge-club-313334f8cfb42059e61aeb74b2fc05db43ab1653.zip
initial commit on 040-042, 060-061, 063
Diffstat (limited to 'challenge-061')
-rw-r--r--challenge-061/stuart-little/README1
-rwxr-xr-xchallenge-061/stuart-little/raku/ch-1.p610
-rwxr-xr-xchallenge-061/stuart-little/raku/ch-2.p621
3 files changed, 32 insertions, 0 deletions
diff --git a/challenge-061/stuart-little/README b/challenge-061/stuart-little/README
new file mode 100644
index 0000000000..78439907de
--- /dev/null
+++ b/challenge-061/stuart-little/README
@@ -0,0 +1 @@
+Solutions by Stuart Little
diff --git a/challenge-061/stuart-little/raku/ch-1.p6 b/challenge-061/stuart-little/raku/ch-1.p6
new file mode 100755
index 0000000000..249d918d96
--- /dev/null
+++ b/challenge-061/stuart-little/raku/ch-1.p6
@@ -0,0 +1,10 @@
+#!/usr/bin/env perl6
+use v6;
+
+sub maxprod(@a) {
+ (@a.keys X @a.keys).grep({ $_[0] <= $_[1]}).map({ @a[$_[0]..$_[1]]}).classify({ $_.reduce(&infix:<*>)}).sort(*.key).reverse.first.value
+}
+
+@*ARGS.map(*.Int).&maxprod.say
+
+# run as <script> <space-separated numbers>
diff --git a/challenge-061/stuart-little/raku/ch-2.p6 b/challenge-061/stuart-little/raku/ch-2.p6
new file mode 100755
index 0000000000..6b1860e589
--- /dev/null
+++ b/challenge-061/stuart-little/raku/ch-2.p6
@@ -0,0 +1,21 @@
+#!/usr/bin/env perl6
+use v6;
+
+sub splc($s) {
+ (0..255).map({ $s ~~ /^($^a)(.*)/; $/ && ($0,$1)}).grep(* !~~ Nil).map(*.map(*.Str))
+}
+
+sub itr1($s) {
+ $s.map({ ($_[0..*-2], $_[*-1].&splc) }).map( -> $x {|$x[1].map( -> $y { |$x[0], |$y})})
+}
+
+sub iter($s,$n,&itr1) {
+ given $n {
+ when 0 {$s}
+ default { iter($s.&itr1, $n-1,&itr1)}
+ }
+}
+
+say iter(@*ARGS[0],4,&itr1).grep(! *.[*-1])
+
+# run as <script> <string>