aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad S Anwar <Mohammad.Anwar@yahoo.com>2020-11-26 21:45:16 +0000
committerGitHub <noreply@github.com>2020-11-26 21:45:16 +0000
commitd80404348320e4ab2a2d37e127d85907c7e1d1db (patch)
treea2ab6d973ec37ff516fb0e8fc2af5f31627aa885
parent5b4ea4dba2112f2882e18992c133b1a3877bf519 (diff)
parentd9ae8542049005ac7ff4bb40fa3e030bd0b27ae2 (diff)
downloadperlweeklychallenge-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/README1
-rwxr-xr-xchallenge-007/stuart-little/raku/ch-1.p67
-rwxr-xr-xchallenge-007/stuart-little/raku/ch-2.p643
-rw-r--r--challenge-008/stuart-little/README1
-rwxr-xr-xchallenge-008/stuart-little/raku/ch-1.p66
-rwxr-xr-xchallenge-008/stuart-little/raku/ch-2.p68
-rw-r--r--challenge-009/stuart-little/README1
-rwxr-xr-xchallenge-009/stuart-little/raku/ch-1.p66
-rwxr-xr-xchallenge-009/stuart-little/raku/ch-2.p619
-rw-r--r--challenge-011/stuart-little/README1
-rwxr-xr-xchallenge-011/stuart-little/raku/ch-1.p66
-rwxr-xr-xchallenge-011/stuart-little/raku/ch-2.p68
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.&center {.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>