aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--challenge-001/stuart-little/README1
-rwxr-xr-xchallenge-001/stuart-little/raku/ch-1.p68
-rwxr-xr-xchallenge-001/stuart-little/raku/ch-2.p66
-rw-r--r--challenge-002/stuart-little/README1
-rwxr-xr-xchallenge-002/stuart-little/raku/ch-1.p66
-rwxr-xr-xchallenge-002/stuart-little/raku/ch-2.p612
-rw-r--r--challenge-003/stuart-little/README1
-rwxr-xr-xchallenge-003/stuart-little/raku/ch-1.p610
-rwxr-xr-xchallenge-003/stuart-little/raku/ch-2.p610
-rw-r--r--challenge-004/stuart-little/README1
-rwxr-xr-xchallenge-004/stuart-little/raku/ch-1.p612
-rwxr-xr-xchallenge-004/stuart-little/raku/ch-2.p612
12 files changed, 80 insertions, 0 deletions
diff --git a/challenge-001/stuart-little/README b/challenge-001/stuart-little/README
new file mode 100644
index 0000000000..78439907de
--- /dev/null
+++ b/challenge-001/stuart-little/README
@@ -0,0 +1 @@
+Solutions by Stuart Little
diff --git a/challenge-001/stuart-little/raku/ch-1.p6 b/challenge-001/stuart-little/raku/ch-1.p6
new file mode 100755
index 0000000000..bee62eddb9
--- /dev/null
+++ b/challenge-001/stuart-little/raku/ch-1.p6
@@ -0,0 +1,8 @@
+#!/usr/bin/env perl6
+use v6;
+
+sub tr_es($s) { my $trs = S:g/e/E/ with $s; $trs, $/.elems }
+
+say tr_es( @*ARGS[0] || 'Perl Weekly Challenge' )
+
+# run as <script> <string surrounded by quotes> or just <script> to default to 'Perl Weekly Challenge'
diff --git a/challenge-001/stuart-little/raku/ch-2.p6 b/challenge-001/stuart-little/raku/ch-2.p6
new file mode 100755
index 0000000000..bfd2c62744
--- /dev/null
+++ b/challenge-001/stuart-little/raku/ch-2.p6
@@ -0,0 +1,6 @@
+#!/usr/bin/env perl6
+use v6;
+
+(1..20).map({ (($_ %% 3) && 'fizz' || '') ~ (($_ %% 5) && 'buzz' || '') || $_ }).say
+
+# run as <script>
diff --git a/challenge-002/stuart-little/README b/challenge-002/stuart-little/README
new file mode 100644
index 0000000000..78439907de
--- /dev/null
+++ b/challenge-002/stuart-little/README
@@ -0,0 +1 @@
+Solutions by Stuart Little
diff --git a/challenge-002/stuart-little/raku/ch-1.p6 b/challenge-002/stuart-little/raku/ch-1.p6
new file mode 100755
index 0000000000..5a75202a99
--- /dev/null
+++ b/challenge-002/stuart-little/raku/ch-1.p6
@@ -0,0 +1,6 @@
+#!/usr/bin/env perl6
+use v6;
+
+say S/^0*// with @*ARGS[0]
+
+# run as <script> <input string>
diff --git a/challenge-002/stuart-little/raku/ch-2.p6 b/challenge-002/stuart-little/raku/ch-2.p6
new file mode 100755
index 0000000000..f558902ca9
--- /dev/null
+++ b/challenge-002/stuart-little/raku/ch-2.p6
@@ -0,0 +1,12 @@
+#!/usr/bin/env perl6
+use v6;
+
+my %*SUB-MAIN-OPTS=:named-anywhere,;
+sub MAIN(
+ Bool :f(:$from-base_35),
+ Bool :t(:$to-base_35) = ! $from-base_35,
+ *@ARGS,
+ ) {
+ my &cvrt=($from-base_35) ?? ({ $_.parse-base(35) }) !! ({ $_.Int.base(35) });
+ say @ARGS[0].&cvrt;
+}
diff --git a/challenge-003/stuart-little/README b/challenge-003/stuart-little/README
new file mode 100644
index 0000000000..78439907de
--- /dev/null
+++ b/challenge-003/stuart-little/README
@@ -0,0 +1 @@
+Solutions by Stuart Little
diff --git a/challenge-003/stuart-little/raku/ch-1.p6 b/challenge-003/stuart-little/raku/ch-1.p6
new file mode 100755
index 0000000000..239303ff7e
--- /dev/null
+++ b/challenge-003/stuart-little/raku/ch-1.p6
@@ -0,0 +1,10 @@
+#!/usr/bin/env perl6
+use v6;
+
+my %memo=((2,3,5) X=> 1).Hash;
+
+sub smth5p($n) { %memo{$n} && return True; return (my $den=(2,3,5).first({ $n %% $_ })) ?? (%memo{$n div $den} && (%memo{$n}=1).Bool || False) !! (False) }
+
+(2..@*ARGS[0].Int).grep(*.&smth5p).say
+
+# run as <script> <number $n> to return the 5-smooth numbers innthe range 2..$n
diff --git a/challenge-003/stuart-little/raku/ch-2.p6 b/challenge-003/stuart-little/raku/ch-2.p6
new file mode 100755
index 0000000000..cb84568373
--- /dev/null
+++ b/challenge-003/stuart-little/raku/ch-2.p6
@@ -0,0 +1,10 @@
+#!/usr/bin/env perl6
+use v6;
+
+sub pscl($n) { $n==1 && return ((1,),); my @a=pscl($n-1); return(|@a, (1, |(@(@a.[*-1]) Z+ @(@a.[*-1].[1..*])) ,1)) }
+
+sub pprnt(@a) { @a.map(*.join(" ")) }
+
+for @*ARGS[0].Int.&pscl.&pprnt {.say}
+
+# run as <script> <number of lines>
diff --git a/challenge-004/stuart-little/README b/challenge-004/stuart-little/README
new file mode 100644
index 0000000000..78439907de
--- /dev/null
+++ b/challenge-004/stuart-little/README
@@ -0,0 +1 @@
+Solutions by Stuart Little
diff --git a/challenge-004/stuart-little/raku/ch-1.p6 b/challenge-004/stuart-little/raku/ch-1.p6
new file mode 100755
index 0000000000..a968fdbb23
--- /dev/null
+++ b/challenge-004/stuart-little/raku/ch-1.p6
@@ -0,0 +1,12 @@
+#!/usr/bin/env perl6
+use v6;
+
+my $s=$*PROGRAM-NAME.IO.s;
+my @a=(1..5*$s);
+
+say (2*(1+([\*] (@a.map(*.FatRat) Z/ @a.map(2 * * +1).map(*.FatRat))).sum)).substr(0,$s);
+
+=finish
+run as <script>
+uses the double-factorial series
+ref: https://en.wikipedia.org/wiki/Approximations_of_%CF%80#Arctangent
diff --git a/challenge-004/stuart-little/raku/ch-2.p6 b/challenge-004/stuart-little/raku/ch-2.p6
new file mode 100755
index 0000000000..19cd804e15
--- /dev/null
+++ b/challenge-004/stuart-little/raku/ch-2.p6
@@ -0,0 +1,12 @@
+#!/usr/bin/env perl6
+use v6;
+
+my %*SUB-MAIN-OPTS=:named-anywhere,;
+sub MAIN(
+ Str :f(:$file),
+ *@LETTERS,
+ ) {
+ for $file.IO.lines.grep({ spl($_.lc,@LETTERS) }) {.say}
+}
+
+sub spl($word,@ltrs) { return ($word.comb.Bag (-) @ltrs).elems == 0 }