aboutsummaryrefslogtreecommitdiff
path: root/challenge-004/simon-proctor
diff options
context:
space:
mode:
authorMohammad S Anwar <mohammad.anwar@yahoo.com>2019-04-21 18:21:16 +0100
committerMohammad S Anwar <mohammad.anwar@yahoo.com>2019-04-21 18:21:16 +0100
commit92504fec2fc45b2ae2685de77c1a30edb1f1e5b5 (patch)
tree04db43e3f1f476f9552c34afd7cc27b2bb62482b /challenge-004/simon-proctor
parentb88e68861bbf1887c3f06470660d34a7646b5b93 (diff)
downloadperlweeklychallenge-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.txt1
-rw-r--r--challenge-004/simon-proctor/perl6/ch-1.p621
-rw-r--r--challenge-004/simon-proctor/perl6/ch-2.p616
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;
+}
+