diff options
| author | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2019-11-14 14:59:11 +0000 |
|---|---|---|
| committer | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2019-11-14 14:59:11 +0000 |
| commit | ebec20e615a039f7c00ee9f290feedc1e1f110ab (patch) | |
| tree | 99665a45675c5fe79a5abf6bf1719cbb84d4b828 | |
| parent | 51ec5a93cbf273002a923569929b158cb7ed8de5 (diff) | |
| download | perlweeklychallenge-club-ebec20e615a039f7c00ee9f290feedc1e1f110ab.tar.gz perlweeklychallenge-club-ebec20e615a039f7c00ee9f290feedc1e1f110ab.tar.bz2 perlweeklychallenge-club-ebec20e615a039f7c00ee9f290feedc1e1f110ab.zip | |
- Added solutions by Arne Sommer.
| -rw-r--r-- | challenge-034/arne-sommer/blog.txt | 1 | ||||
| -rwxr-xr-x | challenge-034/arne-sommer/perl6/ch-1.p6 | 13 | ||||
| -rwxr-xr-x | challenge-034/arne-sommer/perl6/ch-2.p6 | 54 | ||||
| -rwxr-xr-x | challenge-034/arne-sommer/perl6/dispatch | 54 | ||||
| -rwxr-xr-x | challenge-034/arne-sommer/perl6/dispatch-anon | 20 | ||||
| -rwxr-xr-x | challenge-034/arne-sommer/perl6/dispatch-anon-set | 20 | ||||
| -rwxr-xr-x | challenge-034/arne-sommer/perl6/pre-dispatch | 31 | ||||
| -rwxr-xr-x | challenge-034/arne-sommer/perl6/pre-dispatch-sub | 40 | ||||
| -rwxr-xr-x | challenge-034/arne-sommer/perl6/pre-dispatch-sub-given | 41 | ||||
| -rwxr-xr-x | challenge-034/arne-sommer/perl6/slice-n-dice | 13 | ||||
| -rw-r--r-- | stats/pwc-current.json | 107 | ||||
| -rw-r--r-- | stats/pwc-language-breakdown-summary.json | 62 | ||||
| -rw-r--r-- | stats/pwc-language-breakdown.json | 510 | ||||
| -rw-r--r-- | stats/pwc-leaders.json | 848 | ||||
| -rw-r--r-- | stats/pwc-summary-1-30.json | 62 | ||||
| -rw-r--r-- | stats/pwc-summary-121-150.json | 68 | ||||
| -rw-r--r-- | stats/pwc-summary-31-60.json | 102 | ||||
| -rw-r--r-- | stats/pwc-summary-61-90.json | 58 | ||||
| -rw-r--r-- | stats/pwc-summary-91-120.json | 106 | ||||
| -rw-r--r-- | stats/pwc-summary.json | 42 |
20 files changed, 1279 insertions, 973 deletions
diff --git a/challenge-034/arne-sommer/blog.txt b/challenge-034/arne-sommer/blog.txt new file mode 100644 index 0000000000..f56e7a7bbe --- /dev/null +++ b/challenge-034/arne-sommer/blog.txt @@ -0,0 +1 @@ +https://raku-musings.com/sliced-dispatch.html diff --git a/challenge-034/arne-sommer/perl6/ch-1.p6 b/challenge-034/arne-sommer/perl6/ch-1.p6 new file mode 100755 index 0000000000..5bddd857ad --- /dev/null +++ b/challenge-034/arne-sommer/perl6/ch-1.p6 @@ -0,0 +1,13 @@ +#! /usr/bin/env raku + +my @values = <zero one twice thrice four fifth VI seventh acht nine X>; + +say @values[0 .. 10]; +say @values[0 .. 12]; +say @values[10 ... 0]; +say @values[7, 4, 1]; + +my %values = @values.antipairs; + +say %values<zero>; +say %values<zero VI nine>; diff --git a/challenge-034/arne-sommer/perl6/ch-2.p6 b/challenge-034/arne-sommer/perl6/ch-2.p6 new file mode 100755 index 0000000000..87548d6687 --- /dev/null +++ b/challenge-034/arne-sommer/perl6/ch-2.p6 @@ -0,0 +1,54 @@ +#! /usr/bin/env raku + +my $value = 0; + +my %dispatch = +( + q => &last, + quit => &last, + d => &double, + double => &double, + h => &half, + half => &half, + c => &clear, + clear => &clear, + help => &help, +); + +loop +{ + my $command = prompt "[$value]: "; + + if %dispatch{$command} { %dispatch{$command}(); } + elsif $command ~~ /^(\d)$/ { set($0.Int); } +} + +sub last +{ + exit; +} + +sub double +{ + $value *= 2; +} + +sub half +{ + $value /= 2; +} + +sub clear +{ + $value = 0; +} + +sub set ($new) +{ + $value = $new; +} + +sub help +{ + say "Please consult a doctor."; +} diff --git a/challenge-034/arne-sommer/perl6/dispatch b/challenge-034/arne-sommer/perl6/dispatch new file mode 100755 index 0000000000..87548d6687 --- /dev/null +++ b/challenge-034/arne-sommer/perl6/dispatch @@ -0,0 +1,54 @@ +#! /usr/bin/env raku + +my $value = 0; + +my %dispatch = +( + q => &last, + quit => &last, + d => &double, + double => &double, + h => &half, + half => &half, + c => &clear, + clear => &clear, + help => &help, +); + +loop +{ + my $command = prompt "[$value]: "; + + if %dispatch{$command} { %dispatch{$command}(); } + elsif $command ~~ /^(\d)$/ { set($0.Int); } +} + +sub last +{ + exit; +} + +sub double +{ + $value *= 2; +} + +sub half +{ + $value /= 2; +} + +sub clear +{ + $value = 0; +} + +sub set ($new) +{ + $value = $new; +} + +sub help +{ + say "Please consult a doctor."; +} diff --git a/challenge-034/arne-sommer/perl6/dispatch-anon b/challenge-034/arne-sommer/perl6/dispatch-anon new file mode 100755 index 0000000000..4abc4d5f90 --- /dev/null +++ b/challenge-034/arne-sommer/perl6/dispatch-anon @@ -0,0 +1,20 @@ +#! /usr/bin/env raku + +my $value = 0; + +my %dispatch; + +%dispatch<q> = %dispatch<quit> = { exit }; +%dispatch<d> = %dispatch<double> = { $value *= 2 }; +%dispatch<h> = %dispatch<half> = { $value /= 2 }; +%dispatch<c> = %dispatch<clear> = { $value = 0 }; +%dispatch<help> = { say "Please consult a doctor." }; + +loop +{ + my $command = prompt "[$value]: "; + + if %dispatch{$command} { %dispatch{$command}(); } + elsif $command ~~ /^(\d)$/ { $value = $0.Int; } +} + diff --git a/challenge-034/arne-sommer/perl6/dispatch-anon-set b/challenge-034/arne-sommer/perl6/dispatch-anon-set new file mode 100755 index 0000000000..a9c39e8bea --- /dev/null +++ b/challenge-034/arne-sommer/perl6/dispatch-anon-set @@ -0,0 +1,20 @@ +#! /usr/bin/env raku + +my $value = 0; + +my %dispatch; + +%dispatch<q> = %dispatch<quit> = { exit }; +%dispatch<d> = %dispatch<double> = { $value *= 2 }; +%dispatch<h> = %dispatch<half> = { $value /= 2 }; +%dispatch<c> = %dispatch<clear> = { $value = 0 }; +%dispatch<s> = %dispatch<set> = { $value = $0.Int if @_[0] ~~ /^(\d)$/ }; +%dispatch<help> = { say "Please consult a doctor." }; + +loop +{ + my @command = (prompt "[$value]: ").words; + + if %dispatch{@command[0]} { @command[1] ?? %dispatch{@command[0]}(@command[1]) !! %dispatch{@command[0]}() } +} + diff --git a/challenge-034/arne-sommer/perl6/pre-dispatch b/challenge-034/arne-sommer/perl6/pre-dispatch new file mode 100755 index 0000000000..59549b97bc --- /dev/null +++ b/challenge-034/arne-sommer/perl6/pre-dispatch @@ -0,0 +1,31 @@ +#! /usr/bin/env raku + +my $value = 0; + +loop +{ + my $command = prompt "[$value]: "; + + last if $command eq "q" | "quit"; + + if $command eq "d" | "double" + { + $value *= 2; + } + elsif $command eq "h" | "half" + { + $value /= 2; + } + elsif $command eq "c" | "clear" + { + $value = 0; + } + elsif $command ~~ /^(\d)$/ + { + $value = $0.Int; + } + elsif $command eq "help" + { + say "Please consult a doctor."; + } +} diff --git a/challenge-034/arne-sommer/perl6/pre-dispatch-sub b/challenge-034/arne-sommer/perl6/pre-dispatch-sub new file mode 100755 index 0000000000..a0a0305ea0 --- /dev/null +++ b/challenge-034/arne-sommer/perl6/pre-dispatch-sub @@ -0,0 +1,40 @@ +#! /usr/bin/env raku + +my $value = 0; + +loop +{ + my $command = prompt "[$value]: "; + + if $command eq "q" | "quit" { last; } + elsif $command eq "d" | "double" { double; } + elsif $command eq "h" | "half" { half; } + elsif $command eq "c" | "clear" { clear; } + elsif $command ~~ /^(\d)$/ { set($0.Int); } + elsif $command eq "help" { help; } +} + +sub double +{ + $value *= 2; +} + +sub half +{ + $value /= 2; +} + +sub clear +{ + $value = 0; +} + +sub set ($new) +{ + $value = $new; +} + +sub help +{ + say "Please consult a doctor."; +} diff --git a/challenge-034/arne-sommer/perl6/pre-dispatch-sub-given b/challenge-034/arne-sommer/perl6/pre-dispatch-sub-given new file mode 100755 index 0000000000..225f531059 --- /dev/null +++ b/challenge-034/arne-sommer/perl6/pre-dispatch-sub-given @@ -0,0 +1,41 @@ +#! /usr/bin/env raku + +my $value = 0; + +loop +{ + given prompt "[$value]: " + { + when "q" | "quit" { last; } + when "d" | "double" { double; } + when "h" | "half" { half; } + when "c" | "clear" { clear; } + when /^(\d)$/ { set($0.Int); } + when "help" { help; } + } +} + +sub double +{ + $value *= 2; +} + +sub half +{ + $value /= 2; +} + +sub clear +{ + $value = 0; +} + +sub set ($new) +{ + $value = $new; +} + +sub help +{ + say "Please consult a doctor."; +} diff --git a/challenge-034/arne-sommer/perl6/slice-n-dice b/challenge-034/arne-sommer/perl6/slice-n-dice new file mode 100755 index 0000000000..5bddd857ad --- /dev/null +++ b/challenge-034/arne-sommer/perl6/slice-n-dice @@ -0,0 +1,13 @@ +#! /usr/bin/env raku + +my @values = <zero one twice thrice four fifth VI seventh acht nine X>; + +say @values[0 .. 10]; +say @values[0 .. 12]; +say @values[10 ... 0]; +say @values[7, 4, 1]; + +my %values = @values.antipairs; + +say %values<zero>; +say %values<zero VI nine>; diff --git a/stats/pwc-current.json b/stats/pwc-current.json index 11938425dd..fa3baf586b 100644 --- a/stats/pwc-current.json +++ b/stats/pwc-current.json @@ -1,52 +1,51 @@ { - "plotOptions" : { - "series" : { - "dataLabels" : { - "enabled" : 1, - "format" : "{point.y}" - }, - "borderWidth" : 0 - } + "chart" : { + "type" : "column" }, - "xAxis" : { - "type" : "category" + "legend" : { + "enabled" : 0 }, "series" : [ { "data" : [ { + "drilldown" : "Arne Sommer", + "y" : 3, + "name" : "Arne Sommer" + }, + { "name" : "Duane Powell", "y" : 2, "drilldown" : "Duane Powell" }, { - "y" : 5, "drilldown" : "Javier Luque", + "y" : 5, "name" : "Javier Luque" }, { - "name" : "Laurent Rosenfeld", "drilldown" : "Laurent Rosenfeld", - "y" : 5 + "y" : 5, + "name" : "Laurent Rosenfeld" }, { - "drilldown" : "Mark Anderson", "y" : 1, + "drilldown" : "Mark Anderson", "name" : "Mark Anderson" }, { - "drilldown" : "Roger Bell West", "y" : 2, + "drilldown" : "Roger Bell West", "name" : "Roger Bell West" }, { - "y" : 2, + "name" : "Simon Proctor", "drilldown" : "Simon Proctor", - "name" : "Simon Proctor" + "y" : 2 }, { - "y" : 3, "drilldown" : "Steven Wilson", + "y" : 3, "name" : "Steven Wilson" }, { @@ -59,31 +58,57 @@ "colorByPoint" : 1 } ], + "title" : { + "text" : "Perl Weekly Challenge - 034" + }, + "subtitle" : { + "text" : "[Champions: 9] Last updated at 2019-11-14 14:58:53 GMT" + }, "yAxis" : { "title" : { "text" : "Total Solutions" } }, - "title" : { - "text" : "Perl Weekly Challenge - 034" + "xAxis" : { + "type" : "category" }, - "subtitle" : { - "text" : "[Champions: 8] Last updated at 2019-11-13 19:36:54 GMT" + "plotOptions" : { + "series" : { + "borderWidth" : 0, + "dataLabels" : { + "format" : "{point.y}", + "enabled" : 1 + } + } }, "drilldown" : { "series" : [ { - "id" : "Duane Powell", - "name" : "Duane Powell", + "id" : "Arne Sommer", + "data" : [ + [ + "Perl 6", + 2 + ], + [ + "Blog", + 1 + ] + ], + "name" : "Arne Sommer" + }, + { "data" : [ [ "Perl 5", 2 ] - ] + ], + "id" : "Duane Powell", + "name" : "Duane Powell" }, { - "id" : "Javier Luque", + "name" : "Javier Luque", "data" : [ [ "Perl 5", @@ -98,10 +123,10 @@ 1 ] ], - "name" : "Javier Luque" + "id" : "Javier Luque" }, { - "name" : "Laurent Rosenfeld", + "id" : "Laurent Rosenfeld", "data" : [ [ "Perl 5", @@ -116,7 +141,7 @@ 1 ] ], - "id" : "Laurent Rosenfeld" + "name" : "Laurent Rosenfeld" }, { "name" : "Mark Anderson", @@ -129,7 +154,6 @@ "id" : "Mark Anderson" }, { - "name" : "Roger Bell West", "data" : [ [ "Perl 5", @@ -140,21 +164,20 @@ 1 ] ], - "id" : "Roger Bell West" + "id" : "Roger Bell West", + "name" : "Roger Bell West" }, { + "name" : "Simon Proctor", "data" : [ [ "Perl 6", 2 ] ], - "name" : "Simon Proctor", "id" : "Simon Proctor" }, { - "id" : "Steven Wilson", - "name" : "Steven Wilson", "data" : [ [ "Perl 5", @@ -164,29 +187,25 @@ "Perl 6", 1 ] - ] + ], + "id" : "Steven Wilson", + "name" : "Steven Wilson" }, { + "name" : "Ulrich Rieke", "data" : [ [ "Perl 6", 2 ] ], - "name" : "Ulrich Rieke", "id" : "Ulrich Rieke" } ] }, - "chart" : { - "type" : "column" - }, "tooltip" : { - "pointFormat" : "<span style='color:{point.color}'>{point.name}</span>: <b>{point.y:f}</b><br/>", "followPointer" : 1, - "headerFormat" : "<span style='font-size:11px'>{series.name}</span><br/>" - }, - "legend" : { - "enabled" : 0 + "headerFormat" : "<span style='font-size:11px'>{series.name}</span><br/>", + "pointFormat" : "<span style='color:{point.color}'>{point.name}</span>: <b>{point.y:f}</b><br/>" } } diff --git a/stats/pwc-language-breakdown-summary.json b/stats/pwc-language-breakdown-summary.json index 1f748c54e0..d2d3eee58a 100644 --- a/stats/pwc-language-breakdown-summary.json +++ b/stats/pwc-language-breakdown-summary.json @@ -1,31 +1,10 @@ { - "yAxis" : { - "title" : { - "text" : null - }, - "min" : 0 - }, - "tooltip" : { - "pointFormat" : "<b>{point.y:.0f}</b>" - }, "series" : [ { - "dataLabels" : { - "style" : { - "fontFamily" : "Verdana, sans-serif", - "fontSize" : "13px" - }, - "format" : "{point.y:.0f}", - "y" : 10, - "align" : "right", - "enabled" : "true", - "rotation" : -90, - "color" : "#FFFFFF" - }, "data" : [ [ "Blog", - 364 + 365 ], [ "Perl 5", @@ -33,31 +12,52 @@ ], [ "Perl 6", - 849 + 851 ] ], + "dataLabels" : { + "format" : "{point.y:.0f}", + "align" : "right", + "color" : "#FFFFFF", + "style" : { + "fontFamily" : "Verdana, sans-serif", + "fontSize" : "13px" + }, + "enabled" : "true", + "rotation" : -90, + "y" : 10 + }, "name" : "Contributions" } ], + "title" : { + "text" : "Perl Weekly Challenge Contributions - 2019" + }, + "legend" : { + "enabled" : "false" + }, + "yAxis" : { + "title" : { + "text" : null + }, + "min" : 0 + }, "subtitle" : { - "text" : "Last updated at 2019-11-13 19:37:34 GMT" + "text" : "Last updated at 2019-11-14 14:59:05 GMT" }, "chart" : { "type" : "column" }, "xAxis" : { - "type" : "category", "labels" : { "style" : { "fontFamily" : "Verdana, sans-serif", "fontSize" : "13px" } - } - }, - "title" : { - "text" : "Perl Weekly Challenge Contributions - 2019" + }, + "type" : "category" }, - "legend" : { - "enabled" : "false" + "tooltip" : { + "pointFormat" : "<b>{point.y:.0f}</b>" } } diff --git a/stats/pwc-language-breakdown.json b/stats/pwc-language-breakdown.json index 193a63ac37..ae0561bebf 100644 --- a/stats/pwc-language-breakdown.json +++ b/stats/pwc-language-breakdown.json @@ -1,211 +1,15 @@ { - "title" : { - "text" : "Perl Weekly Challenge Language" - }, "legend" : { "enabled" : "false" }, - "plotOptions" : { - "series" : { - "dataLabels" : { - "enabled" : 1, - "format" : "{point.y}" - }, - "borderWidth" : 0 - } - }, "yAxis" : { "title" : { "text" : "Total Solutions" } }, - "series" : [ - { - "colorByPoint" : "true", - "data" : [ - { - "name" : "#001", - "drilldown" : "001", - "y" : 132 - }, - { - "drilldown" : "002", - "y" : 104, - "name" : "#002" - }, - { - "name" : "#003", - "drilldown" : "003", - "y" : 67 - }, - { - "name" : "#004", - "drilldown" : "004", - "y" : 87 - }, - { - "name" : "#005", - "y" : 66, - "drilldown" : "005" - }, - { - "y" : 48, - "drilldown" : "006", - "name" : "#006" - }, - { - "drilldown" : "007", - "y" : 56, - "name" : "#007" - }, - { - "y" : 70, - "drilldown" : "008", - "name" : "#008" - }, - { - "y" : 68, - "drilldown" : "009", - "name" : "#009" - }, - { - "y" : 60, - "drilldown" : "010", - "name" : "#010" - }, - { - "name" : "#011", - "drilldown" : "011", - "y" : 78 - }, - { - "name" : "#012", - "drilldown" : "012", - "y" : 83 - }, - { - "y" : 76, - "drilldown" : "013", - "name" : "#013" - }, - { - "name" : "#014", - "drilldown" : "014", - "y" : 96 - }, - { - "name" : "#015", - "drilldown" : "015", - "y" : 93 - }, - { - "name" : "#016", - "drilldown" : "016", - "y" : 66 - }, - { - "y" : 79, - "drilldown" : "017", - "name" : "#017" - }, - { - "y" : 76, - "drilldown" : "018", - "name" : "#018" - }, - { - "y" : 95, - "drilldown" : "019", - "name" : "#019" - }, - { - "name" : "#020", - "drilldown" : "020", - "y" : 95 - }, - { - "name" : "#021", - "y" : 67, - "drilldown" : "021" - }, - { - "y" : 63, - "drilldown" : "022", - "name" : "#022" - }, - { - "name" : "#023", - "y" : 91, - "drilldown" : "023" - }, - { - "name" : "#024", - "drilldown" : "024", - "y" : 70 - }, - { - "y" : 55, - "drilldown" : "025", - "name" : "#025" - }, - { - "drilldown" : "026", - "y" : 70, - "name" : "#026" - }, - { - "name" : "#027", - "y" : 58, - "drilldown" : "027" - }, - { - "name" : "#028", - "drilldown" : "028", - "y" : 78 - }, - { - "name" : "#029", - "drilldown" : "029", - "y" : 77 - }, - { - "name" : "#030", - "y" : 115, - "drilldown" : "030" - }, - { - "drilldown" : "031", - "y" : 87, - "name" : "#031" - }, - { - "name" : "#032", - "drilldown" : "032", - "y" : 92 - }, - { - "name" : "#033", - "y" : 106, - "drilldown" : "033" - }, - { - "y" : 22, - "drilldown" : "034", - "name" : "#034" - } - ], - "name" : "Perl Weekly Challenge Languages" - } - ], - "tooltip" : { - "followPointer" : "true", - "headerFormat" : "<span style=\"font-size:11px\"></span>", - "pointFormat" : "<span style=\"color:{point.color}\">Challenge {point.name}</span>: <b>{point.y:f}</b><br/>" - }, "drilldown" : { "series" : [ { - "id" : "001", "data" : [ [ "Perl 5", @@ -220,9 +24,12 @@ 11 ] ], + "id" : "001", "name" : "001" }, { + "name" : "002", + "id" : "002", "data" : [ [ "Perl 5", @@ -236,12 +43,9 @@ "Blog", 9 ] - ], - "name" : "002", - "id" : "002" + ] }, { - "id" : "003", "name" : "003", "data" : [ [ @@ -256,11 +60,11 @@ "Blog", 9 ] - ] + ], + "id" : "003" }, { "id" : "004", - "name" : "004", "data" : [ [ "Perl 5", @@ -274,11 +78,11 @@ "Blog", 10 ] - ] + ], + "name" : "004" }, { "id" : "005", - "name" : "005", "data" : [ [ "Perl 5", @@ -292,7 +96,8 @@ "Blog", 11 ] - ] + ], + "name" : "005" }, { "id" : "006", @@ -313,6 +118,7 @@ "name" : "006" }, { + "name" : "007", "id" : "007", "data" : [ [ @@ -327,11 +133,10 @@ "Blog", 10 ] - ], - "name" : "007" + ] }, { - "id" : "008", + "name" : "008", "data" : [ [ "Perl 5", @@ -346,10 +151,10 @@ 12 ] ], - "name" : "008" + "id" : "008" }, { - "id" : "009", + "name" : "009", "data" : [ [ "Perl 5", @@ -364,10 +169,10 @@ 13 ] ], - "name" : "009" + "id" : "009" }, { - "name" : "010", + "id" : "010", "data" : [ [ "Perl 5", @@ -382,9 +187,10 @@ 11 ] ], - "id" : "010" + "name" : "010" }, { + "id" : "011", "data" : [ [ "Perl 5", @@ -399,10 +205,10 @@ 9 ] ], - "name" : "011", - "id" : "011" + "name" : "011" }, { + "name" : "012", "id" : "012", "data" : [ [ @@ -417,12 +223,9 @@ "Blog", 11 ] - ], - "name" : "012" + ] }, { - "id" : "013", - "name" : "013", "data" : [ [ "Perl 5", @@ -436,10 +239,11 @@ "Blog", 13 ] - ] + ], + "id" : "013", + "name" : "013" }, { - "name" : "014", "data" : [ [ "Perl 5", @@ -454,11 +258,11 @@ 15 ] ], - "id" : "014" + "id" : "014", + "name" : "014" }, { "id" : "015", - "name" : "015", "data" : [ [ "Perl 5", @@ -472,7 +276,8 @@ |
