diff options
| author | Mohammad S Anwar <Mohammad.Anwar@yahoo.com> | 2020-11-26 21:45:16 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-11-26 21:45:16 +0000 |
| commit | d80404348320e4ab2a2d37e127d85907c7e1d1db (patch) | |
| tree | a2ab6d973ec37ff516fb0e8fc2af5f31627aa885 | |
| parent | 5b4ea4dba2112f2882e18992c133b1a3877bf519 (diff) | |
| parent | d9ae8542049005ac7ff4bb40fa3e030bd0b27ae2 (diff) | |
| download | perlweeklychallenge-club-d80404348320e4ab2a2d37e127d85907c7e1d1db.tar.gz perlweeklychallenge-club-d80404348320e4ab2a2d37e127d85907c7e1d1db.tar.bz2 perlweeklychallenge-club-d80404348320e4ab2a2d37e127d85907c7e1d1db.zip | |
Merge pull request #2851 from stuart-little/stuart-little_007-009,011
1st commit on 007-009,011
| -rw-r--r-- | challenge-007/stuart-little/README | 1 | ||||
| -rwxr-xr-x | challenge-007/stuart-little/raku/ch-1.p6 | 7 | ||||
| -rwxr-xr-x | challenge-007/stuart-little/raku/ch-2.p6 | 43 | ||||
| -rw-r--r-- | challenge-008/stuart-little/README | 1 | ||||
| -rwxr-xr-x | challenge-008/stuart-little/raku/ch-1.p6 | 6 | ||||
| -rwxr-xr-x | challenge-008/stuart-little/raku/ch-2.p6 | 8 | ||||
| -rw-r--r-- | challenge-009/stuart-little/README | 1 | ||||
| -rwxr-xr-x | challenge-009/stuart-little/raku/ch-1.p6 | 6 | ||||
| -rwxr-xr-x | challenge-009/stuart-little/raku/ch-2.p6 | 19 | ||||
| -rw-r--r-- | challenge-011/stuart-little/README | 1 | ||||
| -rwxr-xr-x | challenge-011/stuart-little/raku/ch-1.p6 | 6 | ||||
| -rwxr-xr-x | challenge-011/stuart-little/raku/ch-2.p6 | 8 |
12 files changed, 107 insertions, 0 deletions
diff --git a/challenge-007/stuart-little/README b/challenge-007/stuart-little/README new file mode 100644 index 0000000000..78439907de --- /dev/null +++ b/challenge-007/stuart-little/README @@ -0,0 +1 @@ +Solutions by Stuart Little diff --git a/challenge-007/stuart-little/raku/ch-1.p6 b/challenge-007/stuart-little/raku/ch-1.p6 new file mode 100755 index 0000000000..5b6fd4b786 --- /dev/null +++ b/challenge-007/stuart-little/raku/ch-1.p6 @@ -0,0 +1,7 @@ +#!/usr/bin/env perl6 +use v6; + +say 0; +for (1..(@*ARGS[0] || 50).Int).grep({ $_ %% $_.comb.sum }) {.say} + +# run as <script> <upper bound> or just <script> to default to range <1..50> diff --git a/challenge-007/stuart-little/raku/ch-2.p6 b/challenge-007/stuart-little/raku/ch-2.p6 new file mode 100755 index 0000000000..5d438ce3cf --- /dev/null +++ b/challenge-007/stuart-little/raku/ch-2.p6 @@ -0,0 +1,43 @@ +#!/usr/bin/env perl6 +use v6; + +my %*SUB-MAIN-OPTS=:named-anywhere,; +sub MAIN( + $source-word, + $target-word, + Str :f(:$file), +) { + + my @words=($file) ?? ($file.IO.lines) !! ($=finish.lines); + + my %conn=mkhash(@words); my %cur=($source-word=>True); my %vis=@words.map({ $_ => () }); %vis{$source-word}=($source-word,); + + say fndpth($source-word,$target-word,%conn,%cur,%vis); + +} + +sub dist($w1,$w2) { ($w1.comb Zne $w2.comb).sum }; sub mkhash(@w) { @w.map({ $_ => @w.grep( -> $w {dist($_,$w)==1} ).Array }).Hash } + +sub fndpth($s,$t,%conn,%cur,%vis) { + while ( + (%conn.{%cur.keys}.map(|*) (-) %vis.grep({ $_.value }).Hash.keys) && (! %vis{$t}) + ) { + my %next=(%conn.{%cur.keys}.map(|*) (-) %vis.grep({ $_.value }).Hash.keys); + for %cur.keys { + %conn{$_}.map(-> $node {%vis{$node}||=(|%vis{$_},$node)}) + } + %cur=%next; + } + (%vis{$t}) && %vis{$t} || () +} + +=finish +cold +cord +core +care +card +ward +warm + + diff --git a/challenge-008/stuart-little/README b/challenge-008/stuart-little/README new file mode 100644 index 0000000000..78439907de --- /dev/null +++ b/challenge-008/stuart-little/README @@ -0,0 +1 @@ +Solutions by Stuart Little diff --git a/challenge-008/stuart-little/raku/ch-1.p6 b/challenge-008/stuart-little/raku/ch-1.p6 new file mode 100755 index 0000000000..1808c2c16c --- /dev/null +++ b/challenge-008/stuart-little/raku/ch-1.p6 @@ -0,0 +1,6 @@ +#!/usr/bin/env perl6 +use v6; + +say (1,2,4,8 ... *).grep({ ($_-1).is-prime }).head(5).map({ ($_ div 2)*($_-1) }) + +# run as <script> diff --git a/challenge-008/stuart-little/raku/ch-2.p6 b/challenge-008/stuart-little/raku/ch-2.p6 new file mode 100755 index 0000000000..5bcabdea14 --- /dev/null +++ b/challenge-008/stuart-little/raku/ch-2.p6 @@ -0,0 +1,8 @@ +#!/usr/bin/env perl6 +use v6; + +sub center(@a) { my $mlen=@a.map(*.chars).max; @a.map({ " " x (($mlen-$_.chars) div 2) ~ $_ }) } + +for @*ARGS.¢er {.say} + +# run as <script> <space-separated strings, each enclosed in quotes if it contains whitespace> diff --git a/challenge-009/stuart-little/README b/challenge-009/stuart-little/README new file mode 100644 index 0000000000..78439907de --- /dev/null +++ b/challenge-009/stuart-little/README @@ -0,0 +1 @@ +Solutions by Stuart Little diff --git a/challenge-009/stuart-little/raku/ch-1.p6 b/challenge-009/stuart-little/raku/ch-1.p6 new file mode 100755 index 0000000000..e8397bc5c8 --- /dev/null +++ b/challenge-009/stuart-little/raku/ch-1.p6 @@ -0,0 +1,6 @@ +#!/usr/bin/env perl6 +use v6; + +say (1..*).map(* ** 2).first({ $_.comb.unique.elems >= 5 }) + +# run as <script> diff --git a/challenge-009/stuart-little/raku/ch-2.p6 b/challenge-009/stuart-little/raku/ch-2.p6 new file mode 100755 index 0000000000..898ae3a048 --- /dev/null +++ b/challenge-009/stuart-little/raku/ch-2.p6 @@ -0,0 +1,19 @@ +#!/usr/bin/env perl6 +use v6; + +my %*SUB-MAIN-OPTS=:named-anywhere,; +sub MAIN( + Bool :s(:$standard), + Bool :m(:$modified), + Bool :d(:$dense), + *@STRINGS-TO-RANK, + ) { + say (($modified) ?? (&modified) + !! (($dense) ?? (&dense) !! (&standard))).( @STRINGS-TO-RANK ) +} + +sub standard(@a) { @a.sort.antipairs.classify({ $_.key }).values.map(*.min).sort({ $_.key }) } + +sub modified(@a) { @a.sort.antipairs.classify({ $_.key }).values.map(*.max).sort({ $_.key }) } + +sub dense(@a) { @a.Set.keys.sort.antipairs } diff --git a/challenge-011/stuart-little/README b/challenge-011/stuart-little/README new file mode 100644 index 0000000000..78439907de --- /dev/null +++ b/challenge-011/stuart-little/README @@ -0,0 +1 @@ +Solutions by Stuart Little diff --git a/challenge-011/stuart-little/raku/ch-1.p6 b/challenge-011/stuart-little/raku/ch-1.p6 new file mode 100755 index 0000000000..f356d491f5 --- /dev/null +++ b/challenge-011/stuart-little/raku/ch-1.p6 @@ -0,0 +1,6 @@ +#!/usr/bin/env perl6 +use v6; + +say -32*5/4 + +# run as <script> diff --git a/challenge-011/stuart-little/raku/ch-2.p6 b/challenge-011/stuart-little/raku/ch-2.p6 new file mode 100755 index 0000000000..678d430bd3 --- /dev/null +++ b/challenge-011/stuart-little/raku/ch-2.p6 @@ -0,0 +1,8 @@ +#!/usr/bin/env perl6 +use v6; + +sub id($n) { (0..^$n).map({ |(0 xx $_), 1, |(0 xx ($n-$_-1)) }) } + +for @*ARGS[0].Int.&id {.say} + +# run as <script> <matrix size> |
