diff options
| author | Mohammad S Anwar <Mohammad.Anwar@yahoo.com> | 2019-04-16 16:35:40 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-04-16 16:35:40 +0100 |
| commit | 5ee69a5d5fec5aeb1f233c81f33bf7410f39b230 (patch) | |
| tree | ce2e7183e6589757bc3ae6f6853104d05387afd7 | |
| parent | 729eb2125d8a5368747ea72301153a519120c2bc (diff) | |
| parent | eae3f2b5f54933c6b52888ca3521a13b90e9e3c3 (diff) | |
| download | perlweeklychallenge-club-5ee69a5d5fec5aeb1f233c81f33bf7410f39b230.tar.gz perlweeklychallenge-club-5ee69a5d5fec5aeb1f233c81f33bf7410f39b230.tar.bz2 perlweeklychallenge-club-5ee69a5d5fec5aeb1f233c81f33bf7410f39b230.zip | |
Merge pull request #60 from fjwhittle/master
Add Challenge 004.2 solution
| -rw-r--r-- | challenge-004/fjwhittle/perl6/ch-2.p6 | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/challenge-004/fjwhittle/perl6/ch-2.p6 b/challenge-004/fjwhittle/perl6/ch-2.p6 new file mode 100644 index 0000000000..6ffc0f97d3 --- /dev/null +++ b/challenge-004/fjwhittle/perl6/ch-2.p6 @@ -0,0 +1,17 @@ +#!/usr/bin/env perl6 + +use v6; + +#| Find words in a file that contain only the given letters +unit sub MAIN( + Str $file #= file containing list of words + where { given .IO { .r && ( .l || .f) or die "Cannot read from $_" } }, + *@letters #= list of letters to search for +); + +my $letter-bag := @letters.hyper.map(*.lc.comb(/ \w /)).flat.Bag; + +my @words = $file.IO.lines.unique.hyper.grep(*.chars > 2) + .map: { .lc.comb(/ \w /).Bag => $_ }; + +@words.hyper.grep(*.key ⊆ $letter-bag)».value.unique(with => *.lc eq *.lc).join(', ').put; |
