aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad S Anwar <Mohammad.Anwar@yahoo.com>2020-11-29 22:43:36 +0000
committerGitHub <noreply@github.com>2020-11-29 22:43:36 +0000
commitf976c62c0f5a112f084b3d35124a90b7d48638ae (patch)
tree975dd9b116003ce1d9cce23af5c5d26cc540d188
parent3ba0b62a74228a7a653a796073a409c4760a93a3 (diff)
parentfa21c0ca9ca760056b1a90c5775e096c098f4b65 (diff)
downloadperlweeklychallenge-club-f976c62c0f5a112f084b3d35124a90b7d48638ae.tar.gz
perlweeklychallenge-club-f976c62c0f5a112f084b3d35124a90b7d48638ae.tar.bz2
perlweeklychallenge-club-f976c62c0f5a112f084b3d35124a90b7d48638ae.zip
Merge pull request #2877 from stuart-little/stuart-little_013-015
1st commit on 013-015
-rw-r--r--challenge-013/stuart-little/README1
-rwxr-xr-xchallenge-013/stuart-little/raku/ch-1.p66
-rwxr-xr-xchallenge-013/stuart-little/raku/ch-2.p613
-rw-r--r--challenge-014/stuart-little/README1
-rwxr-xr-xchallenge-014/stuart-little/raku/ch-1.p66
-rwxr-xr-xchallenge-014/stuart-little/raku/ch-2.p662
-rw-r--r--challenge-015/stuart-little/README1
-rwxr-xr-xchallenge-015/stuart-little/raku/ch-1.p611
-rwxr-xr-xchallenge-015/stuart-little/raku/ch-2.p617
9 files changed, 118 insertions, 0 deletions
diff --git a/challenge-013/stuart-little/README b/challenge-013/stuart-little/README
new file mode 100644
index 0000000000..78439907de
--- /dev/null
+++ b/challenge-013/stuart-little/README
@@ -0,0 +1 @@
+Solutions by Stuart Little
diff --git a/challenge-013/stuart-little/raku/ch-1.p6 b/challenge-013/stuart-little/raku/ch-1.p6
new file mode 100755
index 0000000000..bfa1040c20
--- /dev/null
+++ b/challenge-013/stuart-little/raku/ch-1.p6
@@ -0,0 +1,6 @@
+#!/usr/bin/env perl6
+use v6;
+
+for (1..12).map({ ((my $date=Date.new(@*ARGS[0],$_,1))..$date.last-date-in-month).reverse.first(*.day-of-week == 5) }) {.say}
+
+# run as <script> <year>
diff --git a/challenge-013/stuart-little/raku/ch-2.p6 b/challenge-013/stuart-little/raku/ch-2.p6
new file mode 100755
index 0000000000..4a04795d9d
--- /dev/null
+++ b/challenge-013/stuart-little/raku/ch-2.p6
@@ -0,0 +1,13 @@
+#!/usr/bin/env perl6
+use v6;
+
+sub F($n) { $n==0 && return 1; return $n - M(F($n-1)) }
+
+sub M($n) { $n==0 && return 0; return $n - F(M($n-1)) }
+
+my $n=@*ARGS[0].Int;
+
+say "F: ", F($n);
+say "M: ", M($n);
+
+# run as <script> <function argument (non-negative integer)>
diff --git a/challenge-014/stuart-little/README b/challenge-014/stuart-little/README
new file mode 100644
index 0000000000..78439907de
--- /dev/null
+++ b/challenge-014/stuart-little/README
@@ -0,0 +1 @@
+Solutions by Stuart Little
diff --git a/challenge-014/stuart-little/raku/ch-1.p6 b/challenge-014/stuart-little/raku/ch-1.p6
new file mode 100755
index 0000000000..d8fa8367bf
--- /dev/null
+++ b/challenge-014/stuart-little/raku/ch-1.p6
@@ -0,0 +1,6 @@
+#!/usr/bin/env perl6
+use v6;
+
+say (0, sub (*@a) { my $ix = @a[0..*-2].reverse.first(@a[*-1], :k); ($ix ~~ Int) ?? $ix+1 !! 0 } ... *).[0..^((@*ARGS) ?? @*ARGS[0].Int !! 50)]
+
+# run as <script> <no. of terms you want to see; defaults to 50>
diff --git a/challenge-014/stuart-little/raku/ch-2.p6 b/challenge-014/stuart-little/raku/ch-2.p6
new file mode 100755
index 0000000000..e4a4d6da53
--- /dev/null
+++ b/challenge-014/stuart-little/raku/ch-2.p6
@@ -0,0 +1,62 @@
+#!/usr/bin/env perl6
+use v6;
+
+my @states=$=finish.lines;
+my @words=@*ARGS[0].IO.lines;
+
+say @words.grep((*.uc.comb(2) (-) @states).elems==0).classify(*.chars).max(*.key).value
+
+# run as <script> <path to file containing list of dict words>
+
+=finish
+AL
+AK
+AZ
+AR
+CA
+CO
+CT
+DE
+DC
+FL
+GA
+HI
+ID
+IL
+IN
+IA
+KS
+KY
+LA
+ME
+MD
+MA
+MI
+MN
+MS
+MO
+MT
+NE
+NV
+NH
+NJ
+NM
+NY
+NC
+ND
+OH
+OK
+OR
+PA
+RI
+SC
+SD
+TN
+TX
+UT
+VT
+VA
+WA
+WV
+WI
+WY
diff --git a/challenge-015/stuart-little/README b/challenge-015/stuart-little/README
new file mode 100644
index 0000000000..78439907de
--- /dev/null
+++ b/challenge-015/stuart-little/README
@@ -0,0 +1 @@
+Solutions by Stuart Little
diff --git a/challenge-015/stuart-little/raku/ch-1.p6 b/challenge-015/stuart-little/raku/ch-1.p6
new file mode 100755
index 0000000000..bbb3101406
--- /dev/null
+++ b/challenge-015/stuart-little/raku/ch-1.p6
@@ -0,0 +1,11 @@
+#!/usr/bin/env perl6
+use v6;
+
+my @primes=(2..*).grep(*.is-prime);
+
+my @strong-primes=@primes.pairs.grep({ $_.key > 0 && 2*$_.value > @primes[$_.key-1]+@primes[$_.key+1] }).map(*.value);
+
+my @weak-primes=@primes.pairs.grep({ $_.key > 0 && 2*$_.value < @primes[$_.key-1]+@primes[$_.key+1] }).map(*.value);
+
+say @strong-primes[0..9];
+say @weak-primes[0..9];
diff --git a/challenge-015/stuart-little/raku/ch-2.p6 b/challenge-015/stuart-little/raku/ch-2.p6
new file mode 100755
index 0000000000..64512582ab
--- /dev/null
+++ b/challenge-015/stuart-little/raku/ch-2.p6
@@ -0,0 +1,17 @@
+#!/usr/bin/env perl6
+use v6;
+
+my %*SUB-MAIN-OPTS=:named-anywhere,;
+sub MAIN(
+ $text,
+ Bool :e(:$encrypt),
+ Bool :d(:$decrypt) where {$_ || $encrypt},
+ Str :k(:key(:$keyword)) where {$text && $_},
+ ) {
+
+ my @offsets=({|$keyword.lc.comb.map(*.ord-97)} ... *);
+
+ my &shiftop=($encrypt && ! $decrypt) ?? &[+] !! &[-];
+
+ say $text.comb.map( sub ($c) { $c ~~ /<[a..z]>/ && return (($c.ord-97).&shiftop(@offsets.shift) % 26 + 97).chr; $c ~~ /<[A..Z]>/ && return (($c.ord-65).&shiftop(@offsets.shift) % 26 + 65).chr; $c }).join;
+}