diff options
| author | Mohammad Sajid Anwar <Mohammad.Anwar@yahoo.com> | 2024-04-18 18:21:22 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-04-18 18:21:22 +0100 |
| commit | 657b440dac20420a9eb0e7d44b7754d7ec5d0cb4 (patch) | |
| tree | 8bcb97aadd60c36b71f748d61b7ca8d95bb8fb80 | |
| parent | 300be0f12485336ca2d4a8b6746958941213a467 (diff) | |
| parent | 2e33e78114a603bed3b82714415c249997d63a32 (diff) | |
| download | perlweeklychallenge-club-657b440dac20420a9eb0e7d44b7754d7ec5d0cb4.tar.gz perlweeklychallenge-club-657b440dac20420a9eb0e7d44b7754d7ec5d0cb4.tar.bz2 perlweeklychallenge-club-657b440dac20420a9eb0e7d44b7754d7ec5d0cb4.zip | |
Merge pull request #9953 from arnesom/branch-for-challenge-265
Arne Sommer
| -rw-r--r-- | challenge-265/arne-sommer/blog.txt | 1 | ||||
| -rwxr-xr-x | challenge-265/arne-sommer/raku/appearance | 19 | ||||
| -rwxr-xr-x | challenge-265/arne-sommer/raku/ch-1.raku | 19 | ||||
| -rwxr-xr-x | challenge-265/arne-sommer/raku/ch-2.raku | 19 | ||||
| -rwxr-xr-x | challenge-265/arne-sommer/raku/completing-word | 19 |
5 files changed, 77 insertions, 0 deletions
diff --git a/challenge-265/arne-sommer/blog.txt b/challenge-265/arne-sommer/blog.txt new file mode 100644 index 0000000000..7f58064ec4 --- /dev/null +++ b/challenge-265/arne-sommer/blog.txt @@ -0,0 +1 @@ +https://raku-musings.com/33pct-word.html diff --git a/challenge-265/arne-sommer/raku/appearance b/challenge-265/arne-sommer/raku/appearance new file mode 100755 index 0000000000..f1861f4dc7 --- /dev/null +++ b/challenge-265/arne-sommer/raku/appearance @@ -0,0 +1,19 @@ +#! /usr/bin/env raku + +unit sub MAIN (*@ints where all(@ints) ~~ Int && @ints.elems > 0, :v(:$verbose)); + +my $limit = @ints.elems * 0.33; +my %freq = @ints.Bag; +my %ok = %freq.grep({ $_.value >= $limit }); +my @keys = %ok.keys.sort; + +if $verbose +{ + say ": Frequencies: { %freq.raku }"; + say ": Limit: $limit"; + say ": OK: { %ok.raku }"; + say ": Sorted: { @keys.join(",") }"; +} + +say @keys.first; + diff --git a/challenge-265/arne-sommer/raku/ch-1.raku b/challenge-265/arne-sommer/raku/ch-1.raku new file mode 100755 index 0000000000..f1861f4dc7 --- /dev/null +++ b/challenge-265/arne-sommer/raku/ch-1.raku @@ -0,0 +1,19 @@ +#! /usr/bin/env raku + +unit sub MAIN (*@ints where all(@ints) ~~ Int && @ints.elems > 0, :v(:$verbose)); + +my $limit = @ints.elems * 0.33; +my %freq = @ints.Bag; +my %ok = %freq.grep({ $_.value >= $limit }); +my @keys = %ok.keys.sort; + +if $verbose +{ + say ": Frequencies: { %freq.raku }"; + say ": Limit: $limit"; + say ": OK: { %ok.raku }"; + say ": Sorted: { @keys.join(",") }"; +} + +say @keys.first; + diff --git a/challenge-265/arne-sommer/raku/ch-2.raku b/challenge-265/arne-sommer/raku/ch-2.raku new file mode 100755 index 0000000000..51508f2f32 --- /dev/null +++ b/challenge-265/arne-sommer/raku/ch-2.raku @@ -0,0 +1,19 @@ +#! /usr/bin/env raku + +unit sub MAIN ($str, *@str, :v(:$verbose)); + +my $str-b = $str.comb.grep( * ~~ /<[a..z A..Z]>/)>>.lc.Bag; + +say ": Str Bag: { $str-b.raku }" if $verbose; + +for @str.sort: *.chars -> $candidate +{ + my $candidate-bag = $candidate.comb>>.lc.Bag; + say ": Checking $candidate (Bag: { $candidate-bag.raku })" if $verbose; + + if $str-b (<=) $candidate-bag + { + say $candidate; + exit; + } +} diff --git a/challenge-265/arne-sommer/raku/completing-word b/challenge-265/arne-sommer/raku/completing-word new file mode 100755 index 0000000000..51508f2f32 --- /dev/null +++ b/challenge-265/arne-sommer/raku/completing-word @@ -0,0 +1,19 @@ +#! /usr/bin/env raku + +unit sub MAIN ($str, *@str, :v(:$verbose)); + +my $str-b = $str.comb.grep( * ~~ /<[a..z A..Z]>/)>>.lc.Bag; + +say ": Str Bag: { $str-b.raku }" if $verbose; + +for @str.sort: *.chars -> $candidate +{ + my $candidate-bag = $candidate.comb>>.lc.Bag; + say ": Checking $candidate (Bag: { $candidate-bag.raku })" if $verbose; + + if $str-b (<=) $candidate-bag + { + say $candidate; + exit; + } +} |
