aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--challenge-166/mark-anderson/raku/ch-1.raku13
-rw-r--r--challenge-166/mark-anderson/raku/ch-2.raku80
-rw-r--r--challenge-166/mark-anderson/raku/dir_a/Arial.ttf0
-rw-r--r--challenge-166/mark-anderson/raku/dir_a/Comic_Sans.ttf0
-rw-r--r--challenge-166/mark-anderson/raku/dir_a/Georgia.ttf0
-rw-r--r--challenge-166/mark-anderson/raku/dir_a/Helvetica.ttf0
-rw-r--r--challenge-166/mark-anderson/raku/dir_a/Impact.otf0
-rw-r--r--challenge-166/mark-anderson/raku/dir_a/Verdana.ttf0
-rw-r--r--challenge-166/mark-anderson/raku/dir_b/Arial.ttf0
-rw-r--r--challenge-166/mark-anderson/raku/dir_b/Comic_Sans.ttf0
-rw-r--r--challenge-166/mark-anderson/raku/dir_b/Courier_New.ttf0
-rw-r--r--challenge-166/mark-anderson/raku/dir_b/Helvetica.ttf0
-rw-r--r--challenge-166/mark-anderson/raku/dir_b/Impact.otf0
-rw-r--r--challenge-166/mark-anderson/raku/dir_b/Tahoma.ttf0
-rw-r--r--challenge-166/mark-anderson/raku/dir_b/Verdana.ttf0
-rw-r--r--challenge-166/mark-anderson/raku/dir_c/Arial.ttf0
-rw-r--r--challenge-166/mark-anderson/raku/dir_c/Courier_New.ttf0
-rw-r--r--challenge-166/mark-anderson/raku/dir_c/Helvetica.ttf0
-rw-r--r--challenge-166/mark-anderson/raku/dir_c/Impact.otf0
-rw-r--r--challenge-166/mark-anderson/raku/dir_c/Monaco.ttf0
-rw-r--r--challenge-166/mark-anderson/raku/dir_c/Verdana.ttf0
-rw-r--r--challenge-166/mark-anderson/raku/dir_d/Arial.ttf0
-rw-r--r--challenge-166/mark-anderson/raku/dir_d/Georgia.ttf0
-rw-r--r--challenge-166/mark-anderson/raku/dir_d/Helvetica.ttf0
-rw-r--r--challenge-166/mark-anderson/raku/dir_d/Impact.otf0
-rw-r--r--challenge-166/mark-anderson/raku/dir_d/Monaco.ttf0
-rw-r--r--challenge-166/mark-anderson/raku/dir_d/Tahoma.ttf0
-rw-r--r--challenge-166/mark-anderson/raku/dir_d/Verdana.ttf0
28 files changed, 93 insertions, 0 deletions
diff --git a/challenge-166/mark-anderson/raku/ch-1.raku b/challenge-166/mark-anderson/raku/ch-1.raku
new file mode 100644
index 0000000000..42ab5c3de2
--- /dev/null
+++ b/challenge-166/mark-anderson/raku/ch-1.raku
@@ -0,0 +1,13 @@
+#!/usr/bin/env raku
+
+for '/usr/share/dict/words'.IO.lines
+{
+ next unless .chars ~~ 2..8;
+
+ my \word = .lc;
+
+ if word ~~ /^ <[a..filost]>+ $/
+ {
+ say word.trans('ilost' => '11057')
+ }
+}
diff --git a/challenge-166/mark-anderson/raku/ch-2.raku b/challenge-166/mark-anderson/raku/ch-2.raku
new file mode 100644
index 0000000000..712df950c7
--- /dev/null
+++ b/challenge-166/mark-anderson/raku/ch-2.raku
@@ -0,0 +1,80 @@
+#!/usr/bin/env raku
+
+use Test;
+
+=begin dir_contents
+dir_a dir_b dir_c dir_d
+-------------------------------------------------------------------------
+Arial.ttf Arial.ttf Arial.ttf Arial.ttf
+Comic_Sans.ttf Comic_Sans.ttf Courier_New.ttf Georgia.ttf
+Georgia.ttf Courier_New.ttf Helvetica.ttf Helvetica.ttf
+Helvetica.ttf Helvetica.ttf Impact.otf Impact.otf
+Impact.otf Impact.otf Monaco.ttf Monaco.ttf
+Old_Fonts/ Tahoma.ttf Verdana.ttf Old_Fonts/
+Verdana.ttf Verdana.ttf Tahoma.ttf
+ Verdana.ttf
+=end dir_contents
+
+is k-dir-diff(<dir_a dir_b>), q:to/END/;
+dir_a | dir_b
+----------- | ---------------
+ | Courier_New.ttf
+Georgia.ttf |
+Old_Fonts/ |
+ | Tahoma.ttf
+END
+
+is k-dir-diff(<dir_a dir_b dir_c>), q:to/END/;
+dir_a | dir_b | dir_c
+-------------- | --------------- | ---------------
+Comic_Sans.ttf | Comic_Sans.ttf |
+ | Courier_New.ttf | Courier_New.ttf
+Georgia.ttf | |
+ | | Monaco.ttf
+Old_Fonts/ | |
+ | Tahoma.ttf |
+END
+
+is k-dir-diff(<dir_a dir_b dir_c dir_d>), q:to/END/;
+dir_a | dir_b | dir_c | dir_d
+-------------- | --------------- | --------------- | -----------
+Comic_Sans.ttf | Comic_Sans.ttf | |
+ | Courier_New.ttf | Courier_New.ttf |
+Georgia.ttf | | | Georgia.ttf
+ | | Monaco.ttf | Monaco.ttf
+Old_Fonts/ | | | Old_Fonts/
+ | Tahoma.ttf | | Tahoma.ttf
+END
+
+sub k-dir-diff(*@dirs)
+{
+ my %contents;
+
+ for @dirs -> $dir
+ {
+ %contents{$dir} = qq:x{ls -F $dir}.split("\n", :skip-empty).List
+ }
+
+ my $bag = Bag.new: %contents.values.map: |*;
+
+ my @lines = gather for $bag.keys.sort -> $file
+ {
+ next if $bag{$file} == @dirs;
+
+ my @line = gather for @dirs -> $dir
+ {
+ take %contents{$dir} (cont) $file ?? $file !! ''
+ }
+
+ take @line;
+ }
+
+ my $fmt = .join: ' | ' with gather for [Z] @lines
+ {
+ take '%-' ~ .classify({.chars}).keys.max ~ 's'
+ }
+
+ sprintf("$fmt\n", @dirs) ~
+ sprintf($fmt.subst('-', '-.', :g) ~ "\n", '-' x 100 xx @dirs) ~
+ @lines.map({sprintf("$fmt\n", .flat)}).join
+}
diff --git a/challenge-166/mark-anderson/raku/dir_a/Arial.ttf b/challenge-166/mark-anderson/raku/dir_a/Arial.ttf
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/challenge-166/mark-anderson/raku/dir_a/Arial.ttf
diff --git a/challenge-166/mark-anderson/raku/dir_a/Comic_Sans.ttf b/challenge-166/mark-anderson/raku/dir_a/Comic_Sans.ttf
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/challenge-166/mark-anderson/raku/dir_a/Comic_Sans.ttf
diff --git a/challenge-166/mark-anderson/raku/dir_a/Georgia.ttf b/challenge-166/mark-anderson/raku/dir_a/Georgia.ttf
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/challenge-166/mark-anderson/raku/dir_a/Georgia.ttf
diff --git a/challenge-166/mark-anderson/raku/dir_a/Helvetica.ttf b/challenge-166/mark-anderson/raku/dir_a/Helvetica.ttf
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/challenge-166/mark-anderson/raku/dir_a/Helvetica.ttf
diff --git a/challenge-166/mark-anderson/raku/dir_a/Impact.otf b/challenge-166/mark-anderson/raku/dir_a/Impact.otf
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/challenge-166/mark-anderson/raku/dir_a/Impact.otf
diff --git a/challenge-166/mark-anderson/raku/dir_a/Verdana.ttf b/challenge-166/mark-anderson/raku/dir_a/Verdana.ttf
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/challenge-166/mark-anderson/raku/dir_a/Verdana.ttf
diff --git a/challenge-166/mark-anderson/raku/dir_b/Arial.ttf b/challenge-166/mark-anderson/raku/dir_b/Arial.ttf
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/challenge-166/mark-anderson/raku/dir_b/Arial.ttf
diff --git a/challenge-166/mark-anderson/raku/dir_b/Comic_Sans.ttf b/challenge-166/mark-anderson/raku/dir_b/Comic_Sans.ttf
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/challenge-166/mark-anderson/raku/dir_b/Comic_Sans.ttf
diff --git a/challenge-166/mark-anderson/raku/dir_b/Courier_New.ttf b/challenge-166/mark-anderson/raku/dir_b/Courier_New.ttf
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/challenge-166/mark-anderson/raku/dir_b/Courier_New.ttf
diff --git a/challenge-166/mark-anderson/raku/dir_b/Helvetica.ttf b/challenge-166/mark-anderson/raku/dir_b/Helvetica.ttf
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/challenge-166/mark-anderson/raku/dir_b/Helvetica.ttf
diff --git a/challenge-166/mark-anderson/raku/dir_b/Impact.otf b/challenge-166/mark-anderson/raku/dir_b/Impact.otf
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/challenge-166/mark-anderson/raku/dir_b/Impact.otf
diff --git a/challenge-166/mark-anderson/raku/dir_b/Tahoma.ttf b/challenge-166/mark-anderson/raku/dir_b/Tahoma.ttf
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/challenge-166/mark-anderson/raku/dir_b/Tahoma.ttf
diff --git a/challenge-166/mark-anderson/raku/dir_b/Verdana.ttf b/challenge-166/mark-anderson/raku/dir_b/Verdana.ttf
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/challenge-166/mark-anderson/raku/dir_b/Verdana.ttf
diff --git a/challenge-166/mark-anderson/raku/dir_c/Arial.ttf b/challenge-166/mark-anderson/raku/dir_c/Arial.ttf
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/challenge-166/mark-anderson/raku/dir_c/Arial.ttf
diff --git a/challenge-166/mark-anderson/raku/dir_c/Courier_New.ttf b/challenge-166/mark-anderson/raku/dir_c/Courier_New.ttf
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/challenge-166/mark-anderson/raku/dir_c/Courier_New.ttf
diff --git a/challenge-166/mark-anderson/raku/dir_c/Helvetica.ttf b/challenge-166/mark-anderson/raku/dir_c/Helvetica.ttf
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/challenge-166/mark-anderson/raku/dir_c/Helvetica.ttf
diff --git a/challenge-166/mark-anderson/raku/dir_c/Impact.otf b/challenge-166/mark-anderson/raku/dir_c/Impact.otf
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/challenge-166/mark-anderson/raku/dir_c/Impact.otf
diff --git a/challenge-166/mark-anderson/raku/dir_c/Monaco.ttf b/challenge-166/mark-anderson/raku/dir_c/Monaco.ttf
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/challenge-166/mark-anderson/raku/dir_c/Monaco.ttf
diff --git a/challenge-166/mark-anderson/raku/dir_c/Verdana.ttf b/challenge-166/mark-anderson/raku/dir_c/Verdana.ttf
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/challenge-166/mark-anderson/raku/dir_c/Verdana.ttf
diff --git a/challenge-166/mark-anderson/raku/dir_d/Arial.ttf b/challenge-166/mark-anderson/raku/dir_d/Arial.ttf
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/challenge-166/mark-anderson/raku/dir_d/Arial.ttf
diff --git a/challenge-166/mark-anderson/raku/dir_d/Georgia.ttf b/challenge-166/mark-anderson/raku/dir_d/Georgia.ttf
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/challenge-166/mark-anderson/raku/dir_d/Georgia.ttf
diff --git a/challenge-166/mark-anderson/raku/dir_d/Helvetica.ttf b/challenge-166/mark-anderson/raku/dir_d/Helvetica.ttf
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/challenge-166/mark-anderson/raku/dir_d/Helvetica.ttf
diff --git a/challenge-166/mark-anderson/raku/dir_d/Impact.otf b/challenge-166/mark-anderson/raku/dir_d/Impact.otf
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/challenge-166/mark-anderson/raku/dir_d/Impact.otf
diff --git a/challenge-166/mark-anderson/raku/dir_d/Monaco.ttf b/challenge-166/mark-anderson/raku/dir_d/Monaco.ttf
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/challenge-166/mark-anderson/raku/dir_d/Monaco.ttf
diff --git a/challenge-166/mark-anderson/raku/dir_d/Tahoma.ttf b/challenge-166/mark-anderson/raku/dir_d/Tahoma.ttf
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/challenge-166/mark-anderson/raku/dir_d/Tahoma.ttf
diff --git a/challenge-166/mark-anderson/raku/dir_d/Verdana.ttf b/challenge-166/mark-anderson/raku/dir_d/Verdana.ttf
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/challenge-166/mark-anderson/raku/dir_d/Verdana.ttf