diff options
| author | Mohammad S Anwar <Mohammad.Anwar@yahoo.com> | 2022-12-11 23:21:02 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-12-11 23:21:02 +0000 |
| commit | 0fdb42c6cb42634c7fd87eac2f63b1874893c5db (patch) | |
| tree | 3576f6d8969f753d898d4a1496f07b395d5011fc | |
| parent | 5a16c06bc68432b5fdb366d4dcc69529cd425ee0 (diff) | |
| parent | 08127c996ba47c23231a9ccd6c4966dbae03d666 (diff) | |
| download | perlweeklychallenge-club-0fdb42c6cb42634c7fd87eac2f63b1874893c5db.tar.gz perlweeklychallenge-club-0fdb42c6cb42634c7fd87eac2f63b1874893c5db.tar.bz2 perlweeklychallenge-club-0fdb42c6cb42634c7fd87eac2f63b1874893c5db.zip | |
Merge pull request #7240 from arnesom/branch-for-challenge-194
Arne Sommer
| -rw-r--r-- | challenge-194/arne-sommer/blog.txt | 1 | ||||
| -rwxr-xr-x | challenge-194/arne-sommer/raku/ch-1.raku | 17 | ||||
| -rwxr-xr-x | challenge-194/arne-sommer/raku/ch-2.raku | 15 | ||||
| -rwxr-xr-x | challenge-194/arne-sommer/raku/digital-clock | 17 | ||||
| -rwxr-xr-x | challenge-194/arne-sommer/raku/frequency-equalizer | 15 |
5 files changed, 65 insertions, 0 deletions
diff --git a/challenge-194/arne-sommer/blog.txt b/challenge-194/arne-sommer/blog.txt new file mode 100644 index 0000000000..20b92ad262 --- /dev/null +++ b/challenge-194/arne-sommer/blog.txt @@ -0,0 +1 @@ +https://raku-musings.com/digital-frequalizer.html diff --git a/challenge-194/arne-sommer/raku/ch-1.raku b/challenge-194/arne-sommer/raku/ch-1.raku new file mode 100755 index 0000000000..0f70f1d9f6 --- /dev/null +++ b/challenge-194/arne-sommer/raku/ch-1.raku @@ -0,0 +1,17 @@ +#! /usr/bin/env raku + +subset MissingTime where /^<[012\?]><[0..9\?]>\:<[0..5\?]><[0..9\?]>$/; + +unit sub MAIN (MissingTime $time where $time.comb.Bag<?> == 1); + +die "Illegal time" if $time.substr(0,1) eq "2" && $time.substr(1,1) ne any <0 1 2 3 ?>; + +given $time +{ + when .substr(0,1) eq "?" && .substr(1,1) < 4 { say "2"; } # "?[0..3]:**" + when .substr(0,1) eq "?" { say "1"; } # "?[4..9]:**" + when .substr(1,1) eq "?" && .substr(0,1) < 2 { say "9"; } # "[0..1]?:**" + when .substr(1,1) eq "?" { say "3"; } # "2?:**" + when .substr(3,1) eq "?" { say "5"; } # "**:?*" + when .substr(4,1) eq "?" { say "9"; } # "**:*?" +} diff --git a/challenge-194/arne-sommer/raku/ch-2.raku b/challenge-194/arne-sommer/raku/ch-2.raku new file mode 100755 index 0000000000..465e52bf81 --- /dev/null +++ b/challenge-194/arne-sommer/raku/ch-2.raku @@ -0,0 +1,15 @@ +#! /usr/bin/env raku + +subset az where /^<[a..z]>+$/; + +unit sub MAIN (az $s, :v(:$verbose)); + +my @freq = $s.comb.Bag.values.sort; + +say ": Frequency sorted: @freq[]" if $verbose; + +@freq.push(@freq.pop - 1); + +say ": Frequency lowered: @freq[]" if $verbose; + +say ( [==] @freq ) ?? 1 !! 0; diff --git a/challenge-194/arne-sommer/raku/digital-clock b/challenge-194/arne-sommer/raku/digital-clock new file mode 100755 index 0000000000..0f70f1d9f6 --- /dev/null +++ b/challenge-194/arne-sommer/raku/digital-clock @@ -0,0 +1,17 @@ +#! /usr/bin/env raku + +subset MissingTime where /^<[012\?]><[0..9\?]>\:<[0..5\?]><[0..9\?]>$/; + +unit sub MAIN (MissingTime $time where $time.comb.Bag<?> == 1); + +die "Illegal time" if $time.substr(0,1) eq "2" && $time.substr(1,1) ne any <0 1 2 3 ?>; + +given $time +{ + when .substr(0,1) eq "?" && .substr(1,1) < 4 { say "2"; } # "?[0..3]:**" + when .substr(0,1) eq "?" { say "1"; } # "?[4..9]:**" + when .substr(1,1) eq "?" && .substr(0,1) < 2 { say "9"; } # "[0..1]?:**" + when .substr(1,1) eq "?" { say "3"; } # "2?:**" + when .substr(3,1) eq "?" { say "5"; } # "**:?*" + when .substr(4,1) eq "?" { say "9"; } # "**:*?" +} diff --git a/challenge-194/arne-sommer/raku/frequency-equalizer b/challenge-194/arne-sommer/raku/frequency-equalizer new file mode 100755 index 0000000000..465e52bf81 --- /dev/null +++ b/challenge-194/arne-sommer/raku/frequency-equalizer @@ -0,0 +1,15 @@ +#! /usr/bin/env raku + +subset az where /^<[a..z]>+$/; + +unit sub MAIN (az $s, :v(:$verbose)); + +my @freq = $s.comb.Bag.values.sort; + +say ": Frequency sorted: @freq[]" if $verbose; + +@freq.push(@freq.pop - 1); + +say ": Frequency lowered: @freq[]" if $verbose; + +say ( [==] @freq ) ?? 1 !! 0; |
