diff options
| author | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2023-09-04 03:14:16 +0100 |
|---|---|---|
| committer | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2023-09-04 03:14:16 +0100 |
| commit | 4b8fd7ac9e401d48c360504479f43fd3c1b6ba54 (patch) | |
| tree | 08003f38ccd667582af014f25063ea4fb0dac74a | |
| parent | 76efa74f7d3342ddabc2dba00a51b803161f1181 (diff) | |
| download | perlweeklychallenge-club-4b8fd7ac9e401d48c360504479f43fd3c1b6ba54.tar.gz perlweeklychallenge-club-4b8fd7ac9e401d48c360504479f43fd3c1b6ba54.tar.bz2 perlweeklychallenge-club-4b8fd7ac9e401d48c360504479f43fd3c1b6ba54.zip | |
- Added solutions by Arne Sommer.
- Tidied up solutions by Avery Adams.
22 files changed, 1918 insertions, 1793 deletions
diff --git a/challenge-231/arne-sommer/blog.txt b/challenge-231/arne-sommer/blog.txt new file mode 100644 index 0000000000..00dfd03e40 --- /dev/null +++ b/challenge-231/arne-sommer/blog.txt @@ -0,0 +1 @@ +https://raku-musings.com/citizens-max.html diff --git a/challenge-231/arne-sommer/raku/ch-1.raku b/challenge-231/arne-sommer/raku/ch-1.raku new file mode 100755 index 0000000000..11a774ac3b --- /dev/null +++ b/challenge-231/arne-sommer/raku/ch-1.raku @@ -0,0 +1,13 @@ +#! /usr/bin/env raku + +unit sub MAIN (*@ints where @ints.elems == @ints.unique.elems > 0 && all(@ints) ~~ Int); + +if @ints.elems < 3 +{ + say "-1"; +} +else +{ + my @min-max = @ints.grep( @ints.min < * < @ints.max ); + say "({ @min-max.join(", ") })"; +} diff --git a/challenge-231/arne-sommer/raku/ch-2.raku b/challenge-231/arne-sommer/raku/ch-2.raku new file mode 100755 index 0000000000..8c34a16456 --- /dev/null +++ b/challenge-231/arne-sommer/raku/ch-2.raku @@ -0,0 +1,33 @@ +#! /usr/bin/env raku + +grammar PassengerDetails +{ + token TOP { ^ <phone> <sex> <age> <seat> $ } + token phone { <[0..9]> ** 10 } + token sex { <[MF]> } + token age { <[0..9]> ** 2 } + token seat { <[0..9]> ** 2 } +} + +sub MAIN (*@list where @list.elems > 0 && @list.map({ so PassengerDetails.parse($_) }), :v(:$verbose)) +{ + my $senior = 0; + + for @list -> $passenger + { + my $p = PassengerDetails.parse($passenger); + my $age = $p<age>; + + if $age >= 60 + { + say ": Passenger $passenger (age $age - senior)" if $verbose; + $senior++; + } + elsif $verbose + { + say ": Passenger $passenger (age $age)"; + } + } + + say $senior; +} diff --git a/challenge-231/arne-sommer/raku/senior-citizens-grammar b/challenge-231/arne-sommer/raku/senior-citizens-grammar new file mode 100755 index 0000000000..5dafc90c08 --- /dev/null +++ b/challenge-231/arne-sommer/raku/senior-citizens-grammar @@ -0,0 +1,32 @@ +#! /usr/bin/env raku + +unit sub MAIN (*@list where @list.elems > 0, :v(:$verbose)); + +grammar PassengerDetails +{ + token TOP { ^ <phone> <sex> <age> <seat> $ } + token phone { <[0..9]> ** 10 } + token sex { <[MF]> } + token age { <[0..9]> ** 2 } + token seat { <[0..9]> ** 2 } +} + +my $senior = 0; + +for @list -> $passenger +{ + my $p = PassengerDetails.parse($passenger) || die "Illegal argument $passenger"; + + my $age = $p<age>; + if $age >= 60 + { + say ": Passenger $passenger (age $age - senior)" if $verbose; + $senior++; + } + elsif $verbose + { + say ": Passenger $passenger (age $age)"; + } +} + +say $senior; diff --git a/challenge-231/arne-sommer/raku/senior-citizens-subset b/challenge-231/arne-sommer/raku/senior-citizens-subset new file mode 100755 index 0000000000..9e092090fc --- /dev/null +++ b/challenge-231/arne-sommer/raku/senior-citizens-subset @@ -0,0 +1,23 @@ +#! /usr/bin/env raku + +subset PassengerDetails where * ~~ /^ <[0..9]> ** 10 <[MF]> <[0..9]> ** 2 <[0..9]> ** 2 $/; + +unit sub MAIN (*@list where @list.elems > 0 && all(@list) ~~ PassengerDetails, :v(:$verbose)); + +my $senior = 0; + +for @list -> $passenger +{ + my $age = $passenger.substr(11,2); + if $age >= 60 + { + say ": Passenger $passenger (age $age - senior)" if $verbose; + $senior++; + } + elsif $verbose + { + say ": Passenger $passenger (age $age)"; + } +} + +say $senior; diff --git a/challenge-231/avery-adams/blog.txt b/challenge-231/avery-adams/blog.txt new file mode 100644 index 0000000000..fe2f4d5600 --- /dev/null +++ b/challenge-231/avery-adams/blog.txt @@ -0,0 +1 @@ +https://dev.to/oldtechaa/perl-weekly-challenge-231-not-going-to-extremes-but-accepting-senior-citizens-39ol diff --git a/challenge-231/avery-adams/blogs.txt b/challenge-231/avery-adams/blog1.txt index 8c49c2fc30..a565473d71 100644 --- a/challenge-231/avery-adams/blogs.txt +++ b/challenge-231/avery-adams/blog1.txt @@ -1,2 +1 @@ -https://dev.to/oldtechaa/perl-weekly-challenge-231-not-going-to-extremes-but-accepting-senior-citizens-39ol https://blogs.perl.org/users/oldtechaa/2023/08/perl-weekly-challenge-231---not-going-to-extremes-but-accepting-senior-citizens.html diff --git a/stats/pwc-current.json b/stats/pwc-current.json index 7a414b36c7..a8302d3f49 100644 --- a/stats/pwc-current.json +++ b/stats/pwc-current.json @@ -1,250 +1,10 @@ { - "subtitle" : { - "text" : "[Champions: 43] Last updated at 2023-09-04 01:52:39 GMT" - }, - "chart" : { - "type" : "column" - }, "xAxis" : { "type" : "category" }, - "yAxis" : { - "title" : { - "text" : "Total Solutions" - } - }, - "tooltip" : { - "pointFormat" : "<span style='color:{point.color}'>{point.name}</span>: <b>{point.y:f}</b><br/>", - "headerFormat" : "<span style='font-size:11px'>{series.name}</span><br/>", - "followPointer" : 1 - }, - "series" : [ - { - "colorByPoint" : 1, - "name" : "The Weekly Challenge - 231", - "data" : [ - { - "drilldown" : "Adam Russell", - "y" : 4, - "name" : "Adam Russell" - }, - { - "name" : "Ali Moradi", - "y" : 5, - "drilldown" : "Ali Moradi" - }, - { - "name" : "Andreas Voegele", - "y" : 3, - "drilldown" : "Andreas Voegele" - }, - { - "drilldown" : "Andrew Shitov", - "name" : "Andrew Shitov", - "y" : 3 - }, - { - "drilldown" : "Athanasius", - "name" : "Athanasius", - "y" : 4 - }, - { - "drilldown" : "Avery Adams", - "name" : "Avery Adams", - "y" : 2 - }, - { - "drilldown" : "BarrOff", - "name" : "BarrOff", - "y" : 4 - }, - { - "drilldown" : "Bob Lied", - "y" : 3, - "name" : "Bob Lied" - }, - { - "y" : 2, - "name" : "Bruce Gray", - "drilldown" : "Bruce Gray" - }, - { - "drilldown" : "Cheok-Yin Fung", - "name" : "Cheok-Yin Fung", - "y" : 2 - }, - { - "y" : 2, - "name" : "Clifton Wood", - "drilldown" : "Clifton Wood" - }, - { - "drilldown" : "Dave Jacoby", - "name" : "Dave Jacoby", - "y" : 3 - }, - { - "drilldown" : "David Ferrone", - "y" : 2, - "name" : "David Ferrone" - }, - { - "name" : "E. Choroba", - "y" : 2, - "drilldown" : "E. Choroba" - }, - { - "drilldown" : "Feng Chang", - "y" : 2, - "name" : "Feng Chang" - }, - { - "name" : "Jaldhar H. Vyas", - "y" : 5, - "drilldown" : "Jaldhar H. Vyas" - }, - { - "drilldown" : "Jan Krnavek", - "y" : 2, - "name" : "Jan Krnavek" - }, - { - "name" : "Jorg Sommrey", - "y" : 2, - "drilldown" : "Jorg Sommrey" - }, - { - "drilldown" : "Kjetil Skotheim", - "y" : 2, - "name" : "Kjetil Skotheim" - }, - { - "name" : "Kueppo Wesley", - "y" : 2, - "drilldown" : "Kueppo Wesley" - }, - { - "name" : "Laurent Rosenfeld", - "y" : 6, - "drilldown" : "Laurent Rosenfeld" - }, - { - "name" : "Lubos Kolouch", - "y" : 3, - "drilldown" : "Lubos Kolouch" - }, - { - "drilldown" : "Luca Ferrari", - "name" : "Luca Ferrari", - "y" : 8 - }, - { - "drilldown" : "Mariano Spadaccini", - "name" : "Mariano Spadaccini", - "y" : 2 - }, - { - "name" : "Mark Anderson", - "y" : 2, - "drilldown" : "Mark Anderson" - }, - { - "drilldown" : "Matthew Neleigh", - "y" : 2, - "name" : "Matthew Neleigh" - }, - { - "drilldown" : "Matthias Muth", - "y" : 3, - "name" : "Matthias Muth" - }, - { - "drilldown" : "Packy Anderson", - "name" : "Packy Anderson", - "y" : 5 - }, - { - "y" : 3, - "name" : "Peter Campbell Smith", - "drilldown" : "Peter Campbell Smith" - }, - { - "drilldown" : "Peter Meszaros", - "name" : "Peter Meszaros", - "y" : 2 - }, - { - "name" : "rcmlz", - "y" : 2, - "drilldown" : "rcmlz" - }, - { - "y" : 3, - "name" : "Robbie Hatley", - "drilldown" : "Robbie Hatley" - }, - { - "drilldown" : "Robert DiCicco", - "y" : 4, - "name" : "Robert DiCicco" - }, - { - "drilldown" : "Robert Ransbottom", - "name" : "Robert Ransbottom", - "y" : 2 - }, - { - "y" : 5, - "name" : "Roger Bell_West", - "drilldown" : "Roger Bell_West" - }, - { - "name" : "Simon Green", - "y" : 3, - "drilldown" : "Simon Green" - }, - { - "drilldown" : "Solathian", - "y" : 2, - "name" : "Solathian" - }, - { - "drilldown" : "Stephen G. Lynn", - "y" : 3, - "name" : "Stephen G. Lynn" - }, - { - "drilldown" : "Steven Wilson", - "name" : "Steven Wilson", - "y" : 3 - }, - { - "drilldown" : "Thomas Kohler", - "name" : "Thomas Kohler", - "y" : 4 - }, - { - "drilldown" : "Ulrich Rieke", - "name" : "Ulrich Rieke", - "y" : 4 - }, - { - "y" : 3, - "name" : "W. Luis Mochan", - "drilldown" : "W. Luis Mochan" - }, - { - "drilldown" : "Wanderdoc", - "name" : "Wanderdoc", - "y" : 2 - } - ] - } - ], "drilldown" : { "series" : [ { - "id" : "Adam Russell", "name" : "Adam Russell", "data" : [ [ @@ -255,7 +15,8 @@ "Blog", 2 ] - ] + ], + "id" : "Adam Russell" }, { "id" : "Ali Moradi", @@ -276,7 +37,7 @@ ] }, { - "id" : "Andreas Voegele", + "name" : "Andreas Voegele", "data" : [ [ "Perl", @@ -287,10 +48,9 @@ 1 ] ], - "name" : "Andreas Voegele" + "id" : "Andreas Voegele" }, { - "name" : "Andrew Shitov", "data" : [ [ "Raku", @@ -301,9 +61,24 @@ 1 ] ], + "name" : "Andrew Shitov", "id" : "Andrew Shitov" }, { + "id" : "Arne Sommer", + "name" : "Arne Sommer", + "data" : [ + [ + "Raku", + 2 + ], + [ + "Blog", + 1 + ] + ] + }, + { "name" : "Athanasius", "data" : [ [ @@ -324,6 +99,10 @@ [ "Perl", 2 + ], + [ + "Blog", + 2 ] ] }, @@ -342,8 +121,6 @@ "id" : "BarrOff" }, { - "id" : "Bob Lied", - "name" : "Bob Lied", "data" : [ [ "Perl", @@ -353,7 +130,9 @@ "Blog", 1 ] - ] + ], + "name" : "Bob Lied", + "id" : "Bob Lied" }, { "id" : "Bruce Gray", @@ -366,26 +145,27 @@ "name" : "Bruce Gray" }, { - "id" : "Cheok-Yin Fung", - "name" : "Cheok-Yin Fung", "data" : [ [ "Perl", 2 ] - ] + ], + "name" : "Cheok-Yin Fung", + "id" : "Cheok-Yin Fung" }, { + "name" : "Clifton Wood", "data" : [ [ "Raku", 2 ] ], - "name" : "Clifton Wood", "id" : "Clifton Wood" }, { + "name" : "Dave Jacoby", "data" : [ [ "Perl", @@ -396,41 +176,39 @@ 1 ] ], - "name" : "Dave Jacoby", "id" : "Dave Jacoby" }, { - "id" : "David Ferrone", - "name" : "David Ferrone", "data" : [ [ "Perl", 2 ] - ] + ], + "name" : "David Ferrone", + "id" : "David Ferrone" }, { - "id" : "E. Choroba", + "name" : "E. Choroba", "data" : [ [ "Perl", 2 ] ], - "name" : "E. Choroba" + "id" : "E. Choroba" }, { "id" : "Feng Chang", + "name" : "Feng Chang", "data" : [ [ "Raku", 2 ] - ], - "name" : "Feng Chang" + ] }, { - "id" : "Jaldhar H. Vyas", "name" : "Jaldhar H. Vyas", "data" : [ [ @@ -445,17 +223,18 @@ "Blog", 1 ] - ] + ], + "id" : "Jaldhar H. Vyas" }, { + "id" : "Jan Krnavek", + "name" : "Jan Krnavek", "data" : [ [ "Raku", 2 ] - ], - "name" : "Jan Krnavek", - "id" : "Jan Krnavek" + ] }, { "id" : "Jorg Sommrey", @@ -468,27 +247,28 @@ ] }, { + "id" : "Kjetil Skotheim", "data" : [ [ "Perl", 2 ] ], - "name" : "Kjetil Skotheim", - "id" : "Kjetil Skotheim" + "name" : "Kjetil Skotheim" }, { + "id" : "Kueppo Wesley", "data" : [ [ "Perl", 2 ] ], - "name" : "Kueppo Wesley", - "id" : "Kueppo Wesley" + "name" : "Kueppo Wesley" }, { "id" : "Laurent Rosenfeld", + "name" : "Laurent Rosenfeld", "data" : [ [ "Perl", @@ -502,8 +282,7 @@ "Blog", 2 ] - ], - "name" : "Laurent Rosenfeld" + ] }, { "id" : "Lubos Kolouch", @@ -535,35 +314,37 @@ }, { "id" : "Mariano Spadaccini", + "name" : "Mariano Spadaccini", "data" : [ [ "Perl", 2 ] - ], - "name" : "Mariano Spadaccini" + ] }, { + "id" : "Mark Anderson", "name" : "Mark Anderson", "data" : [ [ "Raku", 2 ] - ], - "id" : "Mark Anderson" + ] }, { + "id" : "Matthew Neleigh", + "name" : "Matthew Neleigh", "data" : [ [ "Perl", 2 ] - ], - "name" : "Matthew Neleigh", - "id" : "Matthew Neleigh" + ] }, { + "id" : "Matthias Muth", + "name" : "Matthias Muth", "data" : [ [ "Perl", @@ -573,9 +354,7 @@ "Blog", 1 ] - ], - "name" : "Matthias Muth", - "id" : "Matthias Muth" + ] }, { "id" : "Packy Anderson", @@ -596,7 +375,6 @@ "name" : "Packy Anderson" }, { - "name" : "Peter Campbell Smith", "data" : [ [ "Perl", @@ -607,17 +385,18 @@ 1 ] ], + "name" : "Peter Campbell Smith", "id" : "Peter Campbell Smith" }, { - "id" : "Peter Meszaros", "data" : [ [ "Perl", 2 ] ], - "name" : "Peter Meszaros" + "name" : "Peter Meszaros", + "id" : "Peter Meszaros" }, { "data" : [ @@ -630,6 +409,7 @@ "id" : "rcmlz" }, { + "name" : "Robbie Hatley", "data" : [ [ "Perl", @@ -640,12 +420,10 @@ 1 ] ], - "name" : "Robbie Hatley", "id" : "Robbie Hatley" }, { "id" : "Robert DiCicco", - "name" : "Robert DiCicco", "data" : [ [ "Perl", @@ -655,20 +433,20 @@ "Raku", 2 ] - ] + ], + "name" : "Robert DiCicco" }, { "id" : "Robert Ransbottom", - "name" : "Robert Ransbottom", "data" : [ [ "Raku", 2 ] - ] + ], + "name" : "Robert Ransbottom" }, { - "name" : "Roger Bell_West", "data" : [ [ "Perl", @@ -683,10 +461,10 @@ 1 ] ], + "name" : "Roger Bell_West", "id" : "Roger Bell_West" }, { - "id" : "Simon Green", "data" : [ [ "Perl", @@ -697,20 +475,22 @@ 1 ] ], - "name" : "Simon Green" + "name" : "Simon Green", + "id" : "Simon Green" }, { + "id" : "Solathian", + "name" : "Solathian", "data" : [ [ "Perl", 2 ] - ], - "name" : "Solathian", - "id" : "Solathian" + ] }, { "id" : "Stephen G. Lynn", + "name" : "Stephen G. Lynn", "data" : [ [ "Perl", @@ -720,12 +500,10 @@ "Blog", 1 ] - ], - "name" : "Stephen G. Lynn" + ] }, { "id" : "Steven Wilson", - "name" : "Steven Wilson", "data" : [ [ "Perl", @@ -735,10 +513,10 @@ "Blog", 1 ] - ] + ], + "name" : "Steven Wilson" }, { - "name" : "Thomas Kohler", "data" : [ [ "Perl", @@ -749,9 +527,11 @@ 2 ] ], + "name" : "Thomas Kohler", "id" : "Thomas Kohler" }, { + "id" : "Ulrich Rieke", "data" : [ [ "Perl", @@ -762,8 +542,7 @@ 2 ] ], - "name" : "Ulrich Rieke", - "id" : "Ulrich Rieke" + "name" : "Ulrich Rieke" }, { "id" : "W. Luis Mochan", @@ -791,19 +570,263 @@ } ] }, - "legend" : { - "enabled" : 0 - }, - "title" : { - "text" : "The Weekly Challenge - 231" - }, "plotOptions" : { "series" : { + "borderWidth" : 0, "dataLabels" : { "enabled" : 1, "format" : "{point.y}" - }, - "borderWidth" : 0 + } } + }, + "title" : { + "text" : "The Weekly Challenge - 231" + }, + "series" : [ + { + "name" : "The Weekly Challenge - 231", + "data" : [ + { + "name" : "Adam Russell", + "y" : 4, + "drilldown" : "Adam Russell" + }, + { + "name" : "Ali Moradi", + "y" : 5, + "drilldown" : "Ali Moradi" + }, + { + "name" : "Andreas Voegele", + "y" : 3, + "drilldown" : "Andreas Voegele" + }, + { + "y" : 3, + "drilldown" : "Andrew Shitov", + "name" : "Andrew Shitov" + }, + { + "drilldown" : "Arne Sommer", + "y" : 3, + "name" : "Arne Sommer" + }, + { + "name" : "Athanasius", + "drilldown" : "Athanasius", + "y" : 4 + }, + { + "name" : "Avery Adams", + "drilldown" : "Avery Adams", + "y" : 4 + }, + { + "y" : 4, + "drilldown" : "BarrOff", + "name" : "BarrOff" + }, + { + "name" : "Bob Lied", + "drilldown" : "Bob Lied", + "y" : 3 + }, + { + "y" : 2, + "drilldown" : "Bruce Gray", + "name" : "Bruce Gray" + }, + { + "name" : "Cheok-Yin Fung", + "y" : 2, + "drilldown" : "Cheok-Yin Fung" + }, + { + "drilldown" : "Clifton Wood", + "y" : 2, + "name" : "Clifton Wood" + }, + { + "y" : 3, + "drilldown" : "Dave Jacoby", + "name" : "Dave Jacoby" + }, + { + "y" : 2, + "drilldown" : "David Ferrone", + "name" : "David Ferrone" + }, + { + "name" : "E. Choroba", + "drilldown" : "E. Choroba", + "y" : 2 + }, + { + "name" : "Feng Chang", + "drilldown" : "Feng Chang", + "y" : 2 + }, + { + "name" : "Jaldhar H. Vyas", + "y" : 5, + "drilldown" : "Jaldhar H. Vyas" + }, + { + "y" : 2, + "drilldown" : "Jan Krnavek", + "name" : "Jan Krnavek" + }, + { + "name" : "Jorg Sommrey", + "drilldown" : "Jorg Sommrey", + "y" : 2 + }, + { + "name" : "Kjetil Skotheim", + "y" : 2, + "drilldown" : "Kjetil Skotheim" + }, + { + "name" : "Kueppo Wesley", + "drilldown" : "Kueppo Wesley", + "y" : 2 + }, + { + "name" : "Laurent Rosenfeld", + "y" : 6, + "drilldown" : "Laurent Rosenfeld" + }, + { + "name" : "Lubos Kolouch", + "drilldown" : "Lubos Kolouch", + "y" : 3 + }, + { + "drilldown" : "Luca Ferrari", + "y" : 8, + "name" : "Luca Ferrari" + }, + |
