diff options
| author | Mohammad S Anwar <Mohammad.Anwar@yahoo.com> | 2021-05-09 21:06:39 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-05-09 21:06:39 +0100 |
| commit | ea3026e37bc8e40410212aa35c541eff8c548879 (patch) | |
| tree | b1f31ce7d50339ee1150506026a2c84b2cc27036 | |
| parent | 34e7cf285e5c9a95dd87d49ba9213f074f8d6c81 (diff) | |
| parent | e74a5c9e937c3b766ce42d5ae8ed73d730c16ed7 (diff) | |
| download | perlweeklychallenge-club-ea3026e37bc8e40410212aa35c541eff8c548879.tar.gz perlweeklychallenge-club-ea3026e37bc8e40410212aa35c541eff8c548879.tar.bz2 perlweeklychallenge-club-ea3026e37bc8e40410212aa35c541eff8c548879.zip | |
Merge pull request #4042 from arnesom/branch-for-challenge-111
Arne Sommer
| -rw-r--r-- | challenge-111/arne-sommer/blog.txt | 1 | ||||
| -rwxr-xr-x | challenge-111/arne-sommer/raku/ch-1.raku | 7 | ||||
| -rwxr-xr-x | challenge-111/arne-sommer/raku/ch-2.raku | 20 | ||||
| -rwxr-xr-x | challenge-111/arne-sommer/raku/ordered-letters | 20 | ||||
| -rwxr-xr-x | challenge-111/arne-sommer/raku/search-matrix | 11 | ||||
| -rwxr-xr-x | challenge-111/arne-sommer/raku/search-matrix2 | 7 |
6 files changed, 66 insertions, 0 deletions
diff --git a/challenge-111/arne-sommer/blog.txt b/challenge-111/arne-sommer/blog.txt new file mode 100644 index 0000000000..c555c2e24a --- /dev/null +++ b/challenge-111/arne-sommer/blog.txt @@ -0,0 +1 @@ +https://raku-musings.com/ordered-search.html diff --git a/challenge-111/arne-sommer/raku/ch-1.raku b/challenge-111/arne-sommer/raku/ch-1.raku new file mode 100755 index 0000000000..c579270884 --- /dev/null +++ b/challenge-111/arne-sommer/raku/ch-1.raku @@ -0,0 +1,7 @@ +#! /usr/bin/env raku + +unit sub MAIN (Int $input, Str $matrix = "1 2 3 5 7 | 9 11 15 19 20 | 23 24 25 29 31 | 32 33 39 40 42 | 45 47 48 49 50"); + +my @m = $matrix.split("|")>>.words>>.List; + +say + (so any(@m.List.flat) == $input); diff --git a/challenge-111/arne-sommer/raku/ch-2.raku b/challenge-111/arne-sommer/raku/ch-2.raku new file mode 100755 index 0000000000..3a0103009d --- /dev/null +++ b/challenge-111/arne-sommer/raku/ch-2.raku @@ -0,0 +1,20 @@ +#! /usr/bin/env raku + +unit sub MAIN (:d(:$dictionary) where $dictionary.IO.r = "/usr/share/dict/british-english", :a($all)); + +my @dict = $dictionary.IO.lines.grep(* !~~ /\W/).map( *.lc ).sort({ $^b.chars <=> $^a.chars }); + +my $found = 0; + +for @dict -> $word +{ + last if !$all && $word.chars < $found; + + my $sorted = $word.comb.sort.join; + + if $word eq $sorted + { + say $word; + $found = $word.chars; + } +} diff --git a/challenge-111/arne-sommer/raku/ordered-letters b/challenge-111/arne-sommer/raku/ordered-letters new file mode 100755 index 0000000000..3a0103009d --- /dev/null +++ b/challenge-111/arne-sommer/raku/ordered-letters @@ -0,0 +1,20 @@ +#! /usr/bin/env raku + +unit sub MAIN (:d(:$dictionary) where $dictionary.IO.r = "/usr/share/dict/british-english", :a($all)); + +my @dict = $dictionary.IO.lines.grep(* !~~ /\W/).map( *.lc ).sort({ $^b.chars <=> $^a.chars }); + +my $found = 0; + +for @dict -> $word +{ + last if !$all && $word.chars < $found; + + my $sorted = $word.comb.sort.join; + + if $word eq $sorted + { + say $word; + $found = $word.chars; + } +} diff --git a/challenge-111/arne-sommer/raku/search-matrix b/challenge-111/arne-sommer/raku/search-matrix new file mode 100755 index 0000000000..0e0e2df117 --- /dev/null +++ b/challenge-111/arne-sommer/raku/search-matrix @@ -0,0 +1,11 @@ +#! /usr/bin/env raku + +unit sub MAIN (Int $input ); + +my @m = [[ 1, 2, 3, 5, 7 ], + [ 9, 11, 15, 19, 20 ], + [ 23, 24, 25, 29, 31 ], + [ 32, 33, 39, 40, 42 ], + [ 45, 47, 48, 49, 50 ]]; + +say + so any(@m>>.List.flat) == $input; diff --git a/challenge-111/arne-sommer/raku/search-matrix2 b/challenge-111/arne-sommer/raku/search-matrix2 new file mode 100755 index 0000000000..c579270884 --- /dev/null +++ b/challenge-111/arne-sommer/raku/search-matrix2 @@ -0,0 +1,7 @@ +#! /usr/bin/env raku + +unit sub MAIN (Int $input, Str $matrix = "1 2 3 5 7 | 9 11 15 19 20 | 23 24 25 29 31 | 32 33 39 40 42 | 45 47 48 49 50"); + +my @m = $matrix.split("|")>>.words>>.List; + +say + (so any(@m.List.flat) == $input); |
