diff options
| author | Mohammad S Anwar <Mohammad.Anwar@yahoo.com> | 2020-11-29 22:43:36 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-11-29 22:43:36 +0000 |
| commit | f976c62c0f5a112f084b3d35124a90b7d48638ae (patch) | |
| tree | 975dd9b116003ce1d9cce23af5c5d26cc540d188 | |
| parent | 3ba0b62a74228a7a653a796073a409c4760a93a3 (diff) | |
| parent | fa21c0ca9ca760056b1a90c5775e096c098f4b65 (diff) | |
| download | perlweeklychallenge-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/README | 1 | ||||
| -rwxr-xr-x | challenge-013/stuart-little/raku/ch-1.p6 | 6 | ||||
| -rwxr-xr-x | challenge-013/stuart-little/raku/ch-2.p6 | 13 | ||||
| -rw-r--r-- | challenge-014/stuart-little/README | 1 | ||||
| -rwxr-xr-x | challenge-014/stuart-little/raku/ch-1.p6 | 6 | ||||
| -rwxr-xr-x | challenge-014/stuart-little/raku/ch-2.p6 | 62 | ||||
| -rw-r--r-- | challenge-015/stuart-little/README | 1 | ||||
| -rwxr-xr-x | challenge-015/stuart-little/raku/ch-1.p6 | 11 | ||||
| -rwxr-xr-x | challenge-015/stuart-little/raku/ch-2.p6 | 17 |
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; +} |
