From ae23f43ebaff0ce0ad5797688bd7b999bced977d Mon Sep 17 00:00:00 2001 From: Mark <53903062+andemark@users.noreply.github.com> Date: Mon, 23 May 2022 06:43:17 +0000 Subject: Challenge 166 Solutions (Raku) --- challenge-166/mark-anderson/raku/ch-1.raku | 13 ++++ challenge-166/mark-anderson/raku/ch-2.raku | 81 ++++++++++++++++++++++ challenge-166/mark-anderson/raku/dir_a/Arial.ttf | 0 .../mark-anderson/raku/dir_a/Comic_Sans.ttf | 0 challenge-166/mark-anderson/raku/dir_a/Georgia.ttf | 0 .../mark-anderson/raku/dir_a/Helvetica.ttf | 0 challenge-166/mark-anderson/raku/dir_a/Impact.otf | 0 challenge-166/mark-anderson/raku/dir_a/Verdana.ttf | 0 challenge-166/mark-anderson/raku/dir_b/Arial.ttf | 0 .../mark-anderson/raku/dir_b/Comic_Sans.ttf | 0 .../mark-anderson/raku/dir_b/Courier_New.ttf | 0 .../mark-anderson/raku/dir_b/Helvetica.ttf | 0 challenge-166/mark-anderson/raku/dir_b/Impact.otf | 0 challenge-166/mark-anderson/raku/dir_b/Tahoma.ttf | 0 challenge-166/mark-anderson/raku/dir_b/Verdana.ttf | 0 challenge-166/mark-anderson/raku/dir_c/Arial.ttf | 0 .../mark-anderson/raku/dir_c/Courier_New.ttf | 0 .../mark-anderson/raku/dir_c/Helvetica.ttf | 0 challenge-166/mark-anderson/raku/dir_c/Impact.otf | 0 challenge-166/mark-anderson/raku/dir_c/Monaco.ttf | 0 challenge-166/mark-anderson/raku/dir_c/Verdana.ttf | 0 challenge-166/mark-anderson/raku/dir_d/Arial.ttf | 0 challenge-166/mark-anderson/raku/dir_d/Georgia.ttf | 0 .../mark-anderson/raku/dir_d/Helvetica.ttf | 0 challenge-166/mark-anderson/raku/dir_d/Impact.otf | 0 challenge-166/mark-anderson/raku/dir_d/Monaco.ttf | 0 challenge-166/mark-anderson/raku/dir_d/Tahoma.ttf | 0 challenge-166/mark-anderson/raku/dir_d/Verdana.ttf | 0 28 files changed, 94 insertions(+) create mode 100644 challenge-166/mark-anderson/raku/ch-1.raku create mode 100644 challenge-166/mark-anderson/raku/ch-2.raku create mode 100644 challenge-166/mark-anderson/raku/dir_a/Arial.ttf create mode 100644 challenge-166/mark-anderson/raku/dir_a/Comic_Sans.ttf create mode 100644 challenge-166/mark-anderson/raku/dir_a/Georgia.ttf create mode 100644 challenge-166/mark-anderson/raku/dir_a/Helvetica.ttf create mode 100644 challenge-166/mark-anderson/raku/dir_a/Impact.otf create mode 100644 challenge-166/mark-anderson/raku/dir_a/Verdana.ttf create mode 100644 challenge-166/mark-anderson/raku/dir_b/Arial.ttf create mode 100644 challenge-166/mark-anderson/raku/dir_b/Comic_Sans.ttf create mode 100644 challenge-166/mark-anderson/raku/dir_b/Courier_New.ttf create mode 100644 challenge-166/mark-anderson/raku/dir_b/Helvetica.ttf create mode 100644 challenge-166/mark-anderson/raku/dir_b/Impact.otf create mode 100644 challenge-166/mark-anderson/raku/dir_b/Tahoma.ttf create mode 100644 challenge-166/mark-anderson/raku/dir_b/Verdana.ttf create mode 100644 challenge-166/mark-anderson/raku/dir_c/Arial.ttf create mode 100644 challenge-166/mark-anderson/raku/dir_c/Courier_New.ttf create mode 100644 challenge-166/mark-anderson/raku/dir_c/Helvetica.ttf create mode 100644 challenge-166/mark-anderson/raku/dir_c/Impact.otf create mode 100644 challenge-166/mark-anderson/raku/dir_c/Monaco.ttf create mode 100644 challenge-166/mark-anderson/raku/dir_c/Verdana.ttf create mode 100644 challenge-166/mark-anderson/raku/dir_d/Arial.ttf create mode 100644 challenge-166/mark-anderson/raku/dir_d/Georgia.ttf create mode 100644 challenge-166/mark-anderson/raku/dir_d/Helvetica.ttf create mode 100644 challenge-166/mark-anderson/raku/dir_d/Impact.otf create mode 100644 challenge-166/mark-anderson/raku/dir_d/Monaco.ttf create mode 100644 challenge-166/mark-anderson/raku/dir_d/Tahoma.ttf create mode 100644 challenge-166/mark-anderson/raku/dir_d/Verdana.ttf 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..270ba3252f --- /dev/null +++ b/challenge-166/mark-anderson/raku/ch-2.raku @@ -0,0 +1,81 @@ +#!/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(), q:to/END/; +dir_a | dir_b +----------- | --------------- + | Courier_New.ttf +Georgia.ttf | +Old_Fonts/ | + | Tahoma.ttf +END + +is k-dir-diff(), 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(), 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 -- cgit From 060edb7595dceeb10aa85c2d9a0167a4915301f2 Mon Sep 17 00:00:00 2001 From: Mark <53903062+andemark@users.noreply.github.com> Date: Mon, 23 May 2022 06:48:12 +0000 Subject: Challenge 166 Solutions (Raku) --- challenge-166/mark-anderson/raku/ch-2.raku | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/challenge-166/mark-anderson/raku/ch-2.raku b/challenge-166/mark-anderson/raku/ch-2.raku index 270ba3252f..6a57fb5958 100644 --- a/challenge-166/mark-anderson/raku/ch-2.raku +++ b/challenge-166/mark-anderson/raku/ch-2.raku @@ -6,14 +6,14 @@ use Test; 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 +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(), q:to/END/; -- cgit From ea40cdf66e8b9a1468be8514114b01457a15e86b Mon Sep 17 00:00:00 2001 From: Mark <53903062+andemark@users.noreply.github.com> Date: Mon, 23 May 2022 06:52:07 +0000 Subject: Challenge 166 Solutions (Raku) --- challenge-166/mark-anderson/raku/ch-2.raku | 1 - 1 file changed, 1 deletion(-) diff --git a/challenge-166/mark-anderson/raku/ch-2.raku b/challenge-166/mark-anderson/raku/ch-2.raku index 6a57fb5958..712df950c7 100644 --- a/challenge-166/mark-anderson/raku/ch-2.raku +++ b/challenge-166/mark-anderson/raku/ch-2.raku @@ -3,7 +3,6 @@ use Test; =begin dir_contents - dir_a dir_b dir_c dir_d ------------------------------------------------------------------------- Arial.ttf Arial.ttf Arial.ttf Arial.ttf -- cgit