diff options
| author | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2020-11-25 22:21:12 +0000 |
|---|---|---|
| committer | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2020-11-25 22:21:12 +0000 |
| commit | 1c9c3163719a0fa6d803efc9c7fe12a063e80486 (patch) | |
| tree | 0f0b839c8ccd38186f65e9ca96d6669a3aa96b32 | |
| parent | 69b3381d4acd28fcd40ba2e2c13c136050754ae3 (diff) | |
| parent | edd613005e19f8bde0f4d5ecd9d12f3df7c6b24a (diff) | |
| download | perlweeklychallenge-club-1c9c3163719a0fa6d803efc9c7fe12a063e80486.tar.gz perlweeklychallenge-club-1c9c3163719a0fa6d803efc9c7fe12a063e80486.tar.bz2 perlweeklychallenge-club-1c9c3163719a0fa6d803efc9c7fe12a063e80486.zip | |
Merge branch 'master' of https://github.com/manwar/perlweeklychallenge-club
| -rw-r--r-- | challenge-001/stuart-little/README | 1 | ||||
| -rwxr-xr-x | challenge-001/stuart-little/raku/ch-1.p6 | 8 | ||||
| -rwxr-xr-x | challenge-001/stuart-little/raku/ch-2.p6 | 6 | ||||
| -rw-r--r-- | challenge-002/stuart-little/README | 1 | ||||
| -rwxr-xr-x | challenge-002/stuart-little/raku/ch-1.p6 | 6 | ||||
| -rwxr-xr-x | challenge-002/stuart-little/raku/ch-2.p6 | 12 | ||||
| -rw-r--r-- | challenge-003/stuart-little/README | 1 | ||||
| -rwxr-xr-x | challenge-003/stuart-little/raku/ch-1.p6 | 10 | ||||
| -rwxr-xr-x | challenge-003/stuart-little/raku/ch-2.p6 | 10 | ||||
| -rw-r--r-- | challenge-004/stuart-little/README | 1 | ||||
| -rwxr-xr-x | challenge-004/stuart-little/raku/ch-1.p6 | 12 | ||||
| -rwxr-xr-x | challenge-004/stuart-little/raku/ch-2.p6 | 12 |
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 } |
