diff options
| author | arnesom <arne@bbop.org> | 2022-12-11 22:18:39 +0100 |
|---|---|---|
| committer | arnesom <arne@bbop.org> | 2022-12-11 22:18:39 +0100 |
| commit | 08127c996ba47c23231a9ccd6c4966dbae03d666 (patch) | |
| tree | f7e7b284fc3c28ba1e316091e48f7555630feff8 /challenge-194 | |
| parent | 5333b8bde873a3b1db76959f5b4ad7b68fa811b0 (diff) | |
| download | perlweeklychallenge-club-08127c996ba47c23231a9ccd6c4966dbae03d666.tar.gz perlweeklychallenge-club-08127c996ba47c23231a9ccd6c4966dbae03d666.tar.bz2 perlweeklychallenge-club-08127c996ba47c23231a9ccd6c4966dbae03d666.zip | |
Arne Sommer
Diffstat (limited to 'challenge-194')
| -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; |
