diff options
| author | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2019-04-21 18:21:16 +0100 |
|---|---|---|
| committer | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2019-04-21 18:21:16 +0100 |
| commit | 92504fec2fc45b2ae2685de77c1a30edb1f1e5b5 (patch) | |
| tree | 04db43e3f1f476f9552c34afd7cc27b2bb62482b /challenge-004/simon-proctor | |
| parent | b88e68861bbf1887c3f06470660d34a7646b5b93 (diff) | |
| download | perlweeklychallenge-club-92504fec2fc45b2ae2685de77c1a30edb1f1e5b5.tar.gz perlweeklychallenge-club-92504fec2fc45b2ae2685de77c1a30edb1f1e5b5.tar.bz2 perlweeklychallenge-club-92504fec2fc45b2ae2685de77c1a30edb1f1e5b5.zip | |
- Added solutions by Simon Proctor.
Diffstat (limited to 'challenge-004/simon-proctor')
| -rw-r--r-- | challenge-004/simon-proctor/blog.txt | 1 | ||||
| -rw-r--r-- | challenge-004/simon-proctor/perl6/ch-1.p6 | 21 | ||||
| -rw-r--r-- | challenge-004/simon-proctor/perl6/ch-2.p6 | 16 |
3 files changed, 38 insertions, 0 deletions
diff --git a/challenge-004/simon-proctor/blog.txt b/challenge-004/simon-proctor/blog.txt new file mode 100644 index 0000000000..261748f117 --- /dev/null +++ b/challenge-004/simon-proctor/blog.txt @@ -0,0 +1 @@ +http://www.khanate.co.uk/blog/2019/04/21/perl-weekly-week-4/ diff --git a/challenge-004/simon-proctor/perl6/ch-1.p6 b/challenge-004/simon-proctor/perl6/ch-1.p6 new file mode 100644 index 0000000000..2bc03189be --- /dev/null +++ b/challenge-004/simon-proctor/perl6/ch-1.p6 @@ -0,0 +1,21 @@ +#!/usr/bin/env perl6 +use v6; + +sub infix:<///> ( Int() $nu, Int() $de ) { FatRat.new( $nu, $de ) } + +sub bbp-digit ( Int $k ) { + my $k8 = $k*8; + (1 /// (16 ** $k)) * ((4 /// ($k8 + 1)) - (2 /// ($k8 + 4)) - (1 /// ($k8 + 5)) - (1 /// ($k8+6))); +} + +sub calc-pi( Int $num ) { + my $p = [+] ( 0..$num ).map( &bbp-digit ); + return $p.Str.substr(0,$num+1); +} + +#| Calculate PI to a given number of digits +sub MAIN ( + Int $digits #= Number of digits to calcuate +) { + say calc-pi( $digits ); +} diff --git a/challenge-004/simon-proctor/perl6/ch-2.p6 b/challenge-004/simon-proctor/perl6/ch-2.p6 new file mode 100644 index 0000000000..4b766e6d5a --- /dev/null +++ b/challenge-004/simon-proctor/perl6/ch-2.p6 @@ -0,0 +1,16 @@ +#!/use/bin/env perl6 +use v6; + +subset FilePath of Str where *.IO.f; + +#| Given a dictionary of words to check and a list of available letters +#| Print the words that can be made using just those letters +sub MAIN ( + FilePath $dict, #= Dictionary file to read + *@letters #= List of letters allowed to be used +) { + my $check-set = bag( @letters.map( *.lc ) ); + + $dict.IO.words.race.grep( { bag( $_.lc.comb ) (<=) $check-set } )>>.say; +} + |
