aboutsummaryrefslogtreecommitdiff
path: root/challenge-033/rnuttall
diff options
context:
space:
mode:
authorRNuttall <richard@nuttall.me.uk>2019-11-09 10:56:18 +0000
committerRNuttall <richard@nuttall.me.uk>2019-11-09 10:56:18 +0000
commit812facf224f1aa9efe1c0b3b440771490bbda009 (patch)
treee41ba844947a7bc5e3e627cc040abd5abc07e95d /challenge-033/rnuttall
parent29ea4af5a7b2d945d5ff0a9b61398e2e464967c8 (diff)
downloadperlweeklychallenge-club-812facf224f1aa9efe1c0b3b440771490bbda009.tar.gz
perlweeklychallenge-club-812facf224f1aa9efe1c0b3b440771490bbda009.tar.bz2
perlweeklychallenge-club-812facf224f1aa9efe1c0b3b440771490bbda009.zip
Task 1
Task1
Diffstat (limited to 'challenge-033/rnuttall')
-rw-r--r--challenge-033/rnuttall/README1
-rw-r--r--challenge-033/rnuttall/perl6/ch-01.p617
-rw-r--r--challenge-033/rnuttall/perl6/ch-02.p616
3 files changed, 34 insertions, 0 deletions
diff --git a/challenge-033/rnuttall/README b/challenge-033/rnuttall/README
new file mode 100644
index 0000000000..c6358313dc
--- /dev/null
+++ b/challenge-033/rnuttall/README
@@ -0,0 +1 @@
+Solution by Richard Nuttall \ No newline at end of file
diff --git a/challenge-033/rnuttall/perl6/ch-01.p6 b/challenge-033/rnuttall/perl6/ch-01.p6
new file mode 100644
index 0000000000..4d94b608d9
--- /dev/null
+++ b/challenge-033/rnuttall/perl6/ch-01.p6
@@ -0,0 +1,17 @@
+#!/usr/bin/env perl6
+# Task #1
+# Count Letters (A..Z)
+
+sub MAIN(*@files) {
+ #Task 1 - a Test of Bag and Bag addition
+ my Bag $counts = bag { 'a' .. 'z' => 0 };
+
+ say @files;
+ # Create a bag for each file and add counts using Bag addition ⊎ or (+)
+ for @files -> $file {
+ $counts ⊎= $file.IO.slurp.lc.comb.Bag;
+ }
+ for 'a' .. 'z' -> $letter {
+ say "$letter: $counts{$letter}";
+ }
+}
diff --git a/challenge-033/rnuttall/perl6/ch-02.p6 b/challenge-033/rnuttall/perl6/ch-02.p6
new file mode 100644
index 0000000000..d76cf95b33
--- /dev/null
+++ b/challenge-033/rnuttall/perl6/ch-02.p6
@@ -0,0 +1,16 @@
+#!/usr/bin/env perl6
+# Task #2
+# Formatted Multiplication Table
+# Write a script to print 11x11 multiplication table, only the top half triangle.
+
+sub MAIN($lim = 11) {
+ # We can use a single format for all lines
+ my $fmt = "%3s%1s" ~ "%4s" x $lim ~ "\n";
+ printf $fmt, 'x', '|', 1..$lim;
+ printf $fmt, '---','+', '----' xx $lim;
+ for 1..$lim -> $x {
+ # use xx Sequence repetition to give spaces for lower half of table,
+ # use Hyperop «*» to multiply out the visible values
+ printf $fmt, $x, '|', ' ' xx $x-1, ($x..$lim) «*» $x;
+ }
+}