diff options
| author | Mohammad S Anwar <Mohammad.Anwar@yahoo.com> | 2022-05-23 20:55:43 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-05-23 20:55:43 +0100 |
| commit | 21960291c0cb673344ea056d03b0be4499ee12e6 (patch) | |
| tree | 9d5a6bc1162862fe3c45b0814ac91b884d41e700 | |
| parent | bd79fdaf6f2ebeab98c0a3576f5c9d6334806026 (diff) | |
| parent | ea40cdf66e8b9a1468be8514114b01457a15e86b (diff) | |
| download | perlweeklychallenge-club-21960291c0cb673344ea056d03b0be4499ee12e6.tar.gz perlweeklychallenge-club-21960291c0cb673344ea056d03b0be4499ee12e6.tar.bz2 perlweeklychallenge-club-21960291c0cb673344ea056d03b0be4499ee12e6.zip | |
Merge pull request #6145 from andemark/branch-for-challenge-166
Branch for challenge 166
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 |
