From 5e374ce48ca198c53c6ef4f516c91616f3149719 Mon Sep 17 00:00:00 2001 From: Ruben Westerberg Date: Sun, 8 Mar 2020 11:28:39 +1000 Subject: Added ch-2 pl and raku --- challenge-050/ruben-westerberg/perl/ch-2.pl | 11 +++++++++++ challenge-050/ruben-westerberg/raku/ch-2.raku | 6 ++++++ 2 files changed, 17 insertions(+) create mode 100755 challenge-050/ruben-westerberg/perl/ch-2.pl create mode 100755 challenge-050/ruben-westerberg/raku/ch-2.raku diff --git a/challenge-050/ruben-westerberg/perl/ch-2.pl b/challenge-050/ruben-westerberg/perl/ch-2.pl new file mode 100755 index 0000000000..6accb56608 --- /dev/null +++ b/challenge-050/ruben-westerberg/perl/ch-2.pl @@ -0,0 +1,11 @@ +#!/usr/bin/env perl +#noble integers +use warnings; +use strict; + +my $size=$ARGV[0]//3; +my @list= sort {$a > $b} map {int rand 50} 1..$size; +#@list=sort { $a > $b} (2,1,6,3); +print "Sorted Input list: ", +join(",", @list),"\n"; +print "Noble Integers found: ", join ", ", @list[grep { @list-$_-1 == $list[$_] } 0..@list-1]; diff --git a/challenge-050/ruben-westerberg/raku/ch-2.raku b/challenge-050/ruben-westerberg/raku/ch-2.raku new file mode 100755 index 0000000000..a74703377a --- /dev/null +++ b/challenge-050/ruben-westerberg/raku/ch-2.raku @@ -0,0 +1,6 @@ +#!/usr/bin/env raku +#noble integer +my $size=@*ARGS[0]//3; +my @list=(50.rand.Int+1 xx $size).sort; +put "Sorted input list: @list[]"; +put "Noble Integers found: ",@list[(^@list).grep({(@list-$_-1) == @list[$_]})]; -- cgit From 6a5221c217f0774a0a0c58e233c5c76faab8a458 Mon Sep 17 00:00:00 2001 From: Mark Anderson Date: Sun, 8 Mar 2020 12:33:56 -0600 Subject: rewrote ch-2.p6 --- challenge-050/mark-anderson/raku/ch-1.p6 | 30 ++++++++++++++++++++---------- challenge-050/mark-anderson/raku/ch-2.p6 | 27 ++++++++++++++++++++++----- 2 files changed, 42 insertions(+), 15 deletions(-) diff --git a/challenge-050/mark-anderson/raku/ch-1.p6 b/challenge-050/mark-anderson/raku/ch-1.p6 index d80ee77243..63b1e5d6c2 100644 --- a/challenge-050/mark-anderson/raku/ch-1.p6 +++ b/challenge-050/mark-anderson/raku/ch-1.p6 @@ -2,20 +2,30 @@ use Test; -plan 3; +plan 5; -is-deeply merge([[2,7], [3,9], [10,12], [15,19], [18,22]]), - [[2,9], [10,12], [15,22]]; +is-deeply merge([[1, 2], ]), + [[1, 2], ], + "[[1, 2], ] = [[1, 2], ]"; -is-deeply merge([[1,3], [5,9], [7,8], [3,4]]), - [[1,4], [5,9]]; +is-deeply merge([[2, 7], [3, 9], [10, 12], [15, 19], [18, 22]]), + [[2, 9], [10, 12], [15, 22]], + "[[2, 7], [3, 9], [10, 12], [15, 19], [18, 22]] = [[2, 9], [10, 12], [15, 22]]"; -is-deeply merge([[1,2], [5,6], [5,5], [2,5], [7,8], [3,3]]), - [[1,6], [7,8]]; +is-deeply merge([[1, 3], [5, 9], [7, 8], [3, 4]]), + [[1, 4], [5, 9]], + "[[1, 3], [5, 9], [7, 8], [3, 4]] = [[1, 4], [5, 9]]"; + +is-deeply merge([[1, 2], [5, 6], [5, 5], [2, 5], [7, 8], [3, 3]]), + [[1, 6], [7, 8]], + "[[1, 2], [5, 6], [5, 5], [2, 5], [7, 8], [3, 3]] = [[1, 6], [7, 8]]"; + +is-deeply merge([[1, 3], [5, 7], [-1, 7]]), + [[-1, 7], ], + "[[1, 3], [5, 7], [-1, 7]] = [[-1, 7], ]"; sub merge(@array) { - @array = @array.sort({ $^a[0] <=> $^b[0] || - $^a[1] <=> $^b[1] }); + @array = @array.sort({ $^a[0] <=> $^b[0] }); my @merged = @array.shift; @@ -23,7 +33,7 @@ sub merge(@array) { my @m = @merged.pop.flat; my @a = @array.shift.flat; - if (@m[1] >= @a[0]) { + if @m[1] >= @a[0] { @merged.push([@m[0], (@a[1], @m[1]).max]); } diff --git a/challenge-050/mark-anderson/raku/ch-2.p6 b/challenge-050/mark-anderson/raku/ch-2.p6 index 678ecc2d99..28e02c8c9e 100644 --- a/challenge-050/mark-anderson/raku/ch-2.p6 +++ b/challenge-050/mark-anderson/raku/ch-2.p6 @@ -1,8 +1,25 @@ #!/usr/bin/env perl6 -my @L = [2, 6, 1, 3]; +use Test; -@L ==> -grep { $_ < @L.elems } ==> # skip numbers that aren't possible -first { @L.grep(* > $_).elems == $_ } ==> # I'm trusting there can only be 1 -say(); +plan 7; + +is noble((1 .. 8)), 4, "(1 .. 8) = 4"; +is noble((1, 6, 3, 2)), 2, "(1, 6, 3, 2) = 2"; +is noble((3, 5, 5, 5, 5)), (), "(3, 5, 5, 5, 5) = ()"; +is noble((4, 5, 5, 5, 5)), 4, "(4, 5, 5, 5, 5) = 4"; +is noble((1, 5, 5, 2, 3, 6)), 3, "(1, 5, 5, 2, 3, 6) = 3"; +is noble((1, 5, 2, 6, 7, 4)), (), "(1, 5, 2, 6, 7, 4) = ()"; +is noble((1, 2, 4, 5, 6, 7, 8, 9, 22)), 5, "(1, 2, 4, 5, 6, 7, 8, 9, 22) = 5"; + +sub noble(@L is copy) { + @L = @L.sort; + + for @L.kv -> $k, $v { + my @rest = @L[$k+1 .. @L.end]; + last if $v > @rest; + return $v if @rest.grep(* > $v) == $v; + } + + return (); +} -- cgit From 8d51e1e1dfd356fb0dee3f7aeaa8433c329f600e Mon Sep 17 00:00:00 2001 From: Mohammad S Anwar Date: Sun, 8 Mar 2020 19:38:19 +0000 Subject: - Added solutions by Colin Crain. --- challenge-050/colin-crain/perl/ch-1.pl | 90 ++++ challenge-050/colin-crain/perl/ch-2.pl | 154 +++++++ challenge-050/colin-crain/raku/ch-1.p6 | 94 ++++ challenge-050/colin-crain/raku/ch-2.p6 | 127 +++++ stats/pwc-current.json | 407 ++++++++-------- stats/pwc-language-breakdown-summary.json | 82 ++-- stats/pwc-language-breakdown.json | 744 +++++++++++++++--------------- stats/pwc-leaders.json | 442 +++++++++--------- stats/pwc-summary-1-30.json | 96 ++-- stats/pwc-summary-121-150.json | 44 +- stats/pwc-summary-151-180.json | 44 +- stats/pwc-summary-31-60.json | 102 ++-- stats/pwc-summary-61-90.json | 104 ++--- stats/pwc-summary-91-120.json | 42 +- stats/pwc-summary.json | 44 +- 15 files changed, 1550 insertions(+), 1066 deletions(-) create mode 100644 challenge-050/colin-crain/perl/ch-1.pl create mode 100644 challenge-050/colin-crain/perl/ch-2.pl create mode 100644 challenge-050/colin-crain/raku/ch-1.p6 create mode 100644 challenge-050/colin-crain/raku/ch-2.p6 diff --git a/challenge-050/colin-crain/perl/ch-1.pl b/challenge-050/colin-crain/perl/ch-1.pl new file mode 100644 index 0000000000..df93bc41b3 --- /dev/null +++ b/challenge-050/colin-crain/perl/ch-1.pl @@ -0,0 +1,90 @@ +#! /opt/local/bin/perl +# +# ch-1.pl +# +# PWC 50 - TASK #1 +# Merge Intervals +# Write a script to merge the given intervals where ever possible. +# +# [2,7], [3,9], [10,12], [15,19], [18,22] +# +# The script should merge [2, 7] and [3, 9] together to return [2, 9]. +# +# Similarly it should also merge [15, 19] and [18, 22] together to return [15, 22]. +# +# The final result should be something like below: +# +# [2, 9], [10, 12], [15, 22] +# +# method: Intervals can be merged if the start or end of one interval is +# contined within the span of another. If the other boundry of the +# second interval is outside the range of the first, a new interval +# is created encompassing the combined span of the two.* +# +# *If the outer boundry is also contained within the range of the +# first, the second interval is swallowed whole into the larger and +# disappears. +# +# This process of integration can be chained, with the new interval +# becoming increasingly larger, as long as there are intervals that +# overlap the aggregate. Amoeba-like, the intervals expand as we +# consolidate the intersecting areas, resulting in a remaining field +# of discontinuous elements. +# +# We will choose to to interpret the intervals expressed as an +# absolute value, a scalar without a vector. The interval [6,4] will +# be considered equivalent to the interval [4,6] as they encompass +# the same span; the quantity of difference is what is being +# measured, rather than a specific sequential progression. With this +# stipulation the intervals can be always be coerced into ascending +# order; without it, it's difficult to understand how the idea of +# merging the intervals can meaningfully done without damaging the +# data. That task would be more akin to summing vectors, or perhaps +# finding the area under a graph. In any case it's outside the +# purview of this challenge. +# +# In preparation for merging, the interval pairs are sorted +# ascending, first internally and then by their lower bound. +# Stepwise, the lowest-bounded (leftmost) interval is shifted off +# the list. If the next interval start is contained within the +# existing, it is shifted off the list and the upper bound of the +# current interval is increased or retained acordingly. This process +# is continued until the next interval lower bound is outside the +# range of the current. The current, expanded interval is then +# output, and the process is begun again with the next, until we run +# out of data. +# +# +# 2020 colin crain +## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## + + +use warnings; +use strict; +use feature ":5.26"; + +## ## ## ## ## MAIN: + +## sort and order the data before commencing +my @intervals = ([2,7], [3,9], [19,15], [18,22], [10,12]); +my @remapped = map { $_->[0] <= $_->[1] ? $_ : [reverse $_->@*] } @intervals; +my @sorted = sort { $a->[0] <=> $b->[0] } @remapped; +my @output; + +while ( my $current = shift @sorted ){ + + ## iterate through the intervals until a lower is greater than the current upper bound + while (scalar @sorted && ($sorted[0]->[0] <= $current->[1])) { + my $next = shift @sorted; + $current->[1] = $next->[1] if $next->[1] > $current->[1]; + } + + ## once out of there we add to the output list, loop and and start again + ## with the next discontinuous interval + push @output, $current; +} + +## output +say join ', ', map { "[" . (join ", ", $_->@*) . "]" } @output; + + diff --git a/challenge-050/colin-crain/perl/ch-2.pl b/challenge-050/colin-crain/perl/ch-2.pl new file mode 100644 index 0000000000..af23136d3a --- /dev/null +++ b/challenge-050/colin-crain/perl/ch-2.pl @@ -0,0 +1,154 @@ +#! /opt/local/bin/perl +# +# ch-2.pl +# +# PWC 50 - TASK #2 +# Noble Integer +# You are given a list, @L, of three or more random integers between 1 +# and 50. A Noble Integer is an integer N in @L, such that there are +# exactly N integers greater than N in @L. Output any Noble Integer +# found in @L, or an empty list if none were found. +# +# An interesting question is whether or not there can be multiple +# Noble Integers in a list. +# +# For example, +# +# Suppose we have list of 4 integers [2, 6, 1, 3]. +# +# Here we have 2 in the above list, known as Noble Integer, since +# there are exactly 2 integers in the list i.e.3 and 6, which are +# greater than 2. +# +# Therefore the script would print 2. +# +# analysis: +# "Listen -- strange women lying in ponds distributing swords is no +# basis for a system of government." +# +# First off, just to get it out of the way, we can address the open +# question: whether or not there can be multiple Noble Integers in a +# list. To do this we first need to decide the unspecified criteria +# of whether or not to allow multiple instances of any integer in +# the random list, and if we do, whether we count these instances as +# different candidates. If we accept both of these then trivially +# duplicating any element that satifies the criteria will produce +# another Noble Integer. Aside from this somewhat pathological case, +# it turns out that duplication does not otherwise affect the +# outcome. Elements of the list are only evaluated as to whether +# they are greater than a given item or not; their precise value is +# irrelevant beyond this scope. Whether or not they are the same as +# another element makes no difference. +# +# As it seems a stretch to consider different instances of the +# number 2 under evaluation for Nobility as different integers, we +# will not, and move on. The given term 'random' in the challenge +# put forward implies freedom from constraints, to be any value; we +# will not impose such a constraint here. +# +# def: Given a list of integers (l, m, n, a, b, c...), the integer +# n is a Noble Integer if and only if the quantity of elements in +# the list greater than n is equal to n. +# +# so: +# given the two elements {m, n} : m ≠ n, +# these can be arbitrarily reordered such that n > m +# m ∈ ℤ' --> |{n, p, q, s...}| : (n,p,q,s,... > m) = m +# +# 1. ∀ n > m , +# n ≯ n --> |{ p, q, s...}| : ( p,q,s,... > n) < m < n +# ∴ n ∉ ℤ' +# +# 2. ∀ l < m , +# m > l --> |{m, n, p, q, s...}| : (m,n,p,q,s,... > n) > m > l +# ∴ l ∉ ℤ' +# +# the contradiction is that n is contained within the set of +# elements > m, yet not contained within the set of elements greater +# than itself. Therefore the set of elements greater than n is +# always smaller than the set of elements greater than m. Yet n > m, +# and the number of elements greater than n must be larger than m +# for n to be Noble. So if m is Noble, no number n > m can also +# satisfy the criterium that the number of list elements greater +# than the number is equal to that number. Similarly, for any l < m, +# the number of list elements greater than l will contain m, and as +# such be greater than the list for m (which will not contain +# itself), and therefore be greater than l. So for any Noble Integer +# m, no number n greater than m can be Noble, and no number l less +# than m can be Noble. +# +# Thus, for any set that contains a Noble Integer, in the words +# of the Highlander, "There can be only one." All Hail our Monarch +# King Int, most Regal, Finite in Quantity yet Infinite in Wisdom, +# Singular and Omnipotent Ruler of his Domain! +# +# It is not exactly clear _why_ satisfying the given criteria allows +# the Noble Integer to reign alone, but all in all this is not +# uncommon throughout history, which is riddled with obtuse +# justifcations and backformation rationalizations by rulers. If +# looking for a reason, it may be best to consider the words: +# "That's why I'm up on the truck and you're down there digging the +# ditch." Such is life. +# +# method: +# Because it is known there can be only 1 or 0 Noble integers, we +# can create a new list using grep, comparing the topic to the +# length of a list of items greater than the topic, using grep +# again. The result list if populated will only have one element. +# This can be done in one line: +# +# my ($noble) = grep { my $ele = $_; scalar( grep { $ele < $_ } @list ) == $ele } @list; +# +# but with a separate validate() subroutine the nested greps are +# easier to follow. +# +# We will also decide "integers between 1 and 50" to mean 1..50 +# inclusive. It is not specified how long the list is, so we will +# pick a random length less than 100 elements, or twice the top +# bound. +# +# 2020 colin crain +## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## + + + +use warnings; +use strict; +use feature ":5.26"; + +## ## ## ## ## MAIN + +## prepare a random list +my @list = make_list(); + +## there is only one Noble Integer if present, so the list of solutions will +## have at maximum one element +my ($noble) = grep { validate($_, @list) } @list; + +## output +say scalar @list, " elements generated"; +say join ', ', @list; +say $noble ? "the number $noble is the Noble Integer" + : "there is no Noble Integer for this list"; + + +## ## ## ## ## SUBS + +sub validate { +## given a scalar and a list, returns true if the number of list elements greater than the +## scalar is equal to the scalar + my ($candidate, @list) = @_; + return scalar( grep { $candidate < $_ } @list ) == $candidate ? 1 : 0; +} + +sub make_list { +## makes a list of between three to 100 random integers between 1 and 50 inclusive + + my @list; + my $elems = int (rand(98)) + 3; + for (1..$elems) { + push @list, int rand(50) + 1; + } + + return @list; +} diff --git a/challenge-050/colin-crain/raku/ch-1.p6 b/challenge-050/colin-crain/raku/ch-1.p6 new file mode 100644 index 0000000000..656754f38f --- /dev/null +++ b/challenge-050/colin-crain/raku/ch-1.p6 @@ -0,0 +1,94 @@ +use v6.d; + +# +# merge.raku +# +# PWC 50 - TASK #1 +# Merge Intervals +# Write a script to merge the given intervals where ever possible. +# +# [2,7], [3,9], [10,12], [15,19], [18,22] +# +# The script should merge [2, 7] and [3, 9] together to return [2, 9]. +# +# Similarly it should also merge [15, 19] and [18, 22] together to return [15, 22]. +# +# The final result should be something like below: +# +# [2, 9], [10, 12], [15, 22] +# +# analysis: Intervals can be merged if the start or end of one interval is +# contined within the span of another. If the other boundry of the +# second interval is outside the range of the first, a new interval +# is created encompassing the combined span of the two.* +# +# *If the outer boundry is also contained within the range of the +# first, the second interval is swallowed whole into the larger and +# disappears. +# +# This process of integration can be chained, with the new interval +# becoming increasingly larger, as long as there are intervals that +# overlap the aggregate. Amoeba-like, the intervals expand as we +# consolidate the intersecting areas, resulting in a remaining field +# of discontinuous elements. +# +# We will choose to to interpret the intervals expressed as an +# absolute value, a scalar without a vector. The interval [6,4] will +# be considered equivalent to the interval [4,6] as they encompass +# the same span; the quantity of difference is what is being +# measured, rather than a specific sequential progression. With this +# stipulation the intervals can be always be coerced into ascending +# order; without it, it's difficult to understand how the idea of +# merging the intervals can meaningfully done without damaging the +# data. That task would be more akin to summing vectors, or perhaps +# finding the area under a graph. In any case it's outside the +# purview of this challenge. +# +# method: In preparation for merging, the interval pairs are sorted +# ascending, first internally and then by their lower bound. +# Stepwise, the lowest-bounded (leftmost) interval is shifted off +# the list. If the next interval start is contained within the +# existing, it is shifted off the list and the upper bound of the +# current interval is increased or retained acordingly. This process +# is continued until the next interval lower bound is outside the +# range of the current. The current, expanded interval is then +# output, and the process is begun again with the next, until we run +# out of data. +# +# +# 2020 colin crain +## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## + +sub MAIN () { + my @intervals = [ [2,7], [3,9], [19,15], [18,22], [10,12] ]; + + ## present the raw input intervals + say @intervals; + + @intervals .= map( {$_[1] > $_[0] ?? $_ !! [$_.reverse]} ); + @intervals .= sort( { $^a[0] <=> $^b[0] } ); + my @output; + + ## take a peek after transformation but before amalgamation + say @intervals; + + + while @intervals.elems { + + ## shift the first element and establish the bounds + my $current = @intervals.shift; + + ## iterate through the intervals until a lower is greater than the current upper bound + while @intervals.elems && (@intervals[0][0] <= $current[1]) { + my $next = @intervals.shift; + $current[1] = $next[1] if $next[1] > $current[1]; + } + + ## once out of there we add to the output list and start again with the next discontinuous interval + @output.push( $current ); + } + + ## output the combined intervals + say (map {"[" ~ .join(', ') ~ "]"}, @output).join(' '); + +} diff --git a/challenge-050/colin-crain/raku/ch-2.p6 b/challenge-050/colin-crain/raku/ch-2.p6 new file mode 100644 index 0000000000..bacdbd3e03 --- /dev/null +++ b/challenge-050/colin-crain/raku/ch-2.p6 @@ -0,0 +1,127 @@ +use v6.d; + +# +# noblesse_entier.raku +# +# PWC 50 - TASK #2 +# Noble Integer +# You are given a list, @L, of three or more random integers between 1 +# and 50. A Noble Integer is an integer N in @L, such that there are +# exactly N integers greater than N in @L. Output any Noble Integer +# found in @L, or an empty list if none were found. +# +# An interesting question is whether or not there can be multiple +# Noble Integers in a list. +# +# For example, +# +# Suppose we have list of 4 integers [2, 6, 1, 3]. +# +# Here we have 2 in the above list, known as Noble Integer, since +# there are exactly 2 integers in the list i.e.3 and 6, which are +# greater than 2. +# +# Therefore the script would print 2. +# +# analysis: +# "Listen -- strange women lying in ponds distributing swords is no +# basis for a system of government." +# +# First off, just to get it out of the way, we can address the open +# question: whether or not there can be multiple Noble Integers in a +# list. To do this we first need to decide the unspecified criteria +# of whether or not to allow multiple instances of any integer in +# the random list, and if we do, whether we count these instances as +# different candidates. If we accept both of these then trivially +# duplicating any element that satifies the criteria will produce +# another Noble Integer. Aside from this somewhat pathological case, +# it turns out that duplication does not otherwise affect the +# outcome. Elements of the list are only evaluated as to whether +# they are greater than a given item or not; their precise value is +# irrelevant beyond this scope. Whether or not they are the same as +# another element makes no difference. +# +# As it seems a stretch to consider different instances of the +# number 2 under evaluation for Nobility as different integers, we +# will not, and move on. The given term 'random' in the challenge +# put forward implies freedom from constraints, to be any value; we +# will not impose such a constraint here. +# +# def: Given a list of integers (l, m, n, a, b, c...), the integer +# n is a Noble Integer if and only if the quantity of elements in +# the list greater than n is equal to n. +# +# so: +# given the two elements {m, n} : m ≠ n, +# these can be arbitrarily reordered such that n > m +# m ∈ ℤ' --> |{n, p, q, s...}| : (n,p,q,s,... > m) = m +# +# 1. ∀ n > m , +# n ≯ n --> |{ p, q, s...}| : ( p,q,s,... > n) < m < n +# ∴ n ∉ ℤ' +# +# 2. ∀ l < m , +# m > l --> |{m, n, p, q, s...}| : (m,n,p,q,s,... > n) > m > l +# ∴ l ∉ ℤ' +# +# the contradiction is that n is contained within the set of +# elements > m, yet not contained within the set of elements greater +# than itself. Therefore the set of elements greater than n is +# always smaller than the set of elements greater than m. Yet n > m, +# and the number of elements greater than n must be larger than m +# for n to be Noble. So if m is Noble, no number n > m can also +# satisfy the criterium that the number of list elements greater +# than the number is equal to that number. Similarly, for any l < m, +# the number of list elements greater than l will contain m, and as +# such be greater than the list for m (which will not contain +# itself), and therefore be greater than l. So for any Noble Integer +# m, no number n greater than m can be Noble, and no number l less +# than m can be Noble. +# +# Thus, for any set that contains a Noble Integer, in the words +# of the Highlander, "There can be only one." All Hail our Monarch +# King Int, most Regal, Finite in Quantity yet Infinite in Wisdom, +# Singular and Omnipotent Ruler of his Domain! +# +# It is not exactly clear _why_ satisfying the given criteria allows +# the Noble Integer to reign alone, but all in all this is not +# uncommon throughout history, which is riddled with obtuse +# justifcations and backformation rationalizations by rulers. If +# looking for a reason, it may be best to consider the words: +# "That's why I'm up on the truck and you're down there digging the +# ditch." Such is life. +# +# method: +# Because it is known there can be only 0 or 1 Noble integers, we +# can create a new list using grep, comparing the topic to the +# length of a list of items greater than the topic, using grep +# again. The result list if populated will only have one element. +# +# We will also decide "integers between 1 and 50" to mean 1..50 +# inclusive. It is not specified how long the list is, so we will +# pick a random length less than 100 elements, or twice the top +# bound. +# +# We've slightly altered the output to be a little more +# demonstrative and colorful. +# +# +# 2020 colin crain +## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## + +sub MAIN () { + + ## create a list of 3..100 elements between 1..50 inclusive + my @list = (^(2..99).pick).map({ (1..50).pick }) ; + + ## determine whether there is a noble integer and note it + my @noble = @list.grep( { my $i = $_; @list.grep({ $i < $_ }).elems == $i ?? 1 !! 0 } ); + + ## say the list created, the noble integer if present, or alternately a + ## victory cry for "Liberté, égalité, fraternité" because presumably the + ## heads of the nobles are all over there in a basket. Sometimes life takes + ## a turn. + @list.say; + say @noble[0] ?? "the integer @noble[0] is Noble" !! "Vive la France! Vive la révolution!"; + +} diff --git a/stats/pwc-current.json b/stats/pwc-current.json index 59770758fa..e9ed8015b2 100644 --- a/stats/pwc-current.json +++ b/stats/pwc-current.json @@ -1,4 +1,162 @@ { + "legend" : { + "enabled" : 0 + }, + "title" : { + "text" : "Perl Weekly Challenge - 050" + }, + "series" : [ + { + "colorByPoint" : 1, + "data" : [ + { + "y" : 2, + "drilldown" : "Alexander Karelas", + "name" : "Alexander Karelas" + }, + { + "drilldown" : "Arne Sommer", + "y" : 3, + "name" : "Arne Sommer" + }, + { + "drilldown" : "Ben Davies", + "y" : 2, + "name" : "Ben Davies" + }, + { + "drilldown" : "Cheok-Yin Fung", + "y" : 2, + "name" : "Cheok-Yin Fung" + }, + { + "drilldown" : "Colin Crain", + "y" : 4, + "name" : "Colin Crain" + }, + { + "y" : 1, + "drilldown" : "Cristina Heredia", + "name" : "Cristina Heredia" + }, + { + "y" : 2, + "drilldown" : "Dave Cross", + "name" : "Dave Cross" + }, + { + "name" : "Dave Jacoby", + "y" : 3, + "drilldown" : "Dave Jacoby" + }, + { + "y" : 3, + "drilldown" : "E. Choroba", + "name" : "E. Choroba" + }, + { + "drilldown" : "Javier Luque", + "y" : 5, + "name" : "Javier Luque" + }, + { + "name" : "Kevin Colyer", + "y" : 2, + "drilldown" : "Kevin Colyer" + }, + { + "name" : "Laurent Rosenfeld", + "y" : 5, + "drilldown" : "Laurent Rosenfeld" + }, + { + "drilldown" : "Luca Ferrari", + "y" : 4, + "name" : "Luca Ferrari" + }, + { + "name" : "Mark Anderson", + "drilldown" : "Mark Anderson", + "y" : 2 + }, + { + "name" : "Markus Holzer", + "drilldown" : "Markus Holzer", + "y" : 2 + }, + { + "y" : 3, + "drilldown" : "Mohammad S Anwar", + "name" : "Mohammad S Anwar" + }, + { + "y" : 2, + "drilldown" : "Noud Aldenhoven", + "name" : "Noud Aldenhoven" + }, + { + "name" : "Phillip Harris", + "y" : 2, + "drilldown" : "Phillip Harris" + }, + { + "name" : "Roger Bell West", + "drilldown" : "Roger Bell West", + "y" : 4 + }, + { + "y" : 2, + "drilldown" : "Saif Ahmed", + "name" : "Saif Ahmed" + }, + { + "name" : "Simon Proctor", + "drilldown" : "Simon Proctor", + "y" : 2 + }, + { + "drilldown" : "Sol DeMuth", + "y" : 2, + "name" : "Sol DeMuth" + }, + { + "name" : "Ulrich Rieke", + "drilldown" : "Ulrich Rieke", + "y" : 3 + }, + { + "drilldown" : "Wanderdoc", + "y" : 2, + "name" : "Wanderdoc" + }, + { + "drilldown" : "Yet Ebreo", + "y" : 2, + "name" : "Yet Ebreo" + } + ], + "name" : "Perl Weekly Challenge - 050" + } + ], + "tooltip" : { + "headerFormat" : "{series.name}
", + "pointFormat" : "{point.name}: {point.y:f}
", + "followPointer" : 1 + }, + "yAxis" : { + "title" : { + "text" : "Total Solutions" + } + }, + "chart" : { + "type" : "column" + }, + "xAxis" : { + "type" : "category" + }, + "subtitle" : { + "text" : "[Champions: 25] Last updated at 2020-03-08 19:37:50 GMT" + }, "drilldown" : { "series" : [ { @@ -13,7 +171,6 @@ }, { "name" : "Arne Sommer", - "id" : "Arne Sommer", "data" : [ [ "Raku", @@ -23,7 +180,8 @@ "Blog", 1 ] - ] + ], + "id" : "Arne Sommer" }, { "data" : [ @@ -37,37 +195,49 @@ }, { "id" : "Cheok-Yin Fung", - "name" : "Cheok-Yin Fung", "data" : [ [ "Perl", 2 ] - ] + ], + "name" : "Cheok-Yin Fung" }, { + "name" : "Colin Crain", + "data" : [ + [ + "Perl", + 2 + ], + [ + "Raku", + 2 + ] + ], + "id" : "Colin Crain" + }, + { + "id" : "Cristina Heredia", "data" : [ [ "Perl", 1 ] ], - "name" : "Cristina Heredia", - "id" : "Cristina Heredia" + "name" : "Cristina Heredia" }, { + "id" : "Dave Cross", "data" : [ [ "Perl", 2 ] ], - "id" : "Dave Cross", "name" : "Dave Cross" }, { - "name" : "Dave Jacoby", - "id" : "Dave Jacoby", "data" : [ [ "Perl", @@ -77,9 +247,12 @@ "Blog", 1 ] - ] + ], + "id" : "Dave Jacoby", + "name" : "Dave Jacoby" }, { + "name" : "E. Choroba", "data" : [ [ "Perl", @@ -90,12 +263,10 @@ 1 ] ], - "name" : "E. Choroba", "id" : "E. Choroba" }, { "name" : "Javier Luque", - "id" : "Javier Luque", "data" : [ [ "Perl", @@ -109,7 +280,8 @@ "Blog", 1 ] - ] + ], + "id" : "Javier Luque" }, { "name" : "Kevin Colyer", @@ -122,8 +294,8 @@ ] }, { - "id" : "Laurent Rosenfeld", "name" : "Laurent Rosenfeld", + "id" : "Laurent Rosenfeld", "data" : [ [ "Perl", @@ -150,32 +322,30 @@ 2 ] ], - "name" : "Luca Ferrari", - "id" : "Luca Ferrari" + "id" : "Luca Ferrari", + "name" : "Luca Ferrari" }, { + "name" : "Mark Anderson", + "id" : "Mark Anderson", "data" : [ [ "Raku", 2 ] - ], - "id" : "Mark Anderson", - "name" : "Mark Anderson" + ] }, { "id" : "Markus Holzer", - "name" : "Markus Holzer", "data" : [ [ "Raku", 2 ] - ] + ], + "name" : "Markus Holzer" }, { - "name" : "Mohammad S Anwar", - "id" : "Mohammad S Anwar", "data" : [ [ "Perl", @@ -185,11 +355,13 @@ "Raku", 1 ] - ] + ], + "id" : "Mohammad S Anwar", + "name" : "Mohammad S Anwar" }, { - "id" : "Noud Aldenhoven", "name" : "Noud Aldenhoven", + "id" : "Noud Aldenhoven", "data" : [ [ "Raku", @@ -198,17 +370,16 @@ ] }, { - "name" : "Phillip Harris", - "id" : "Phillip Harris", "data" : [ [ "Perl", 2 ] - ] + ], + "id" : "Phillip Harris", + "name" : "Phillip Harris" }, { - "name" : "Roger Bell West", "id" : "Roger Bell West", "data" : [ [ @@ -219,17 +390,18 @@ "Raku", 2 ] - ] + ], + "name" : "Roger Bell West" }, { - "name" : "Saif Ahmed", - "id" : "Saif Ahmed", "data" : [ [ "Perl", 2 ] - ] + ], + "id" : "Saif Ahmed", + "name" : "Saif Ahmed" }, { "data" : [ @@ -242,16 +414,17 @@ "name" : "Simon Proctor" }, { - "name" : "Sol DeMuth", "id" : "Sol DeMuth", "data" : [ [ "Perl", 2 ] - ] + ], + "name" : "Sol DeMuth" }, { + "id" : "Ulrich Rieke", "data" : [ [ "Perl", @@ -262,191 +435,37 @@ 2 ] ], - "id" : "Ulrich Rieke", "name" : "Ulrich Rieke" }, { + "id" : "Wanderdoc", "data" : [ [ "Perl", 2 ] ], - "id" : "Wanderdoc", "name" : "Wanderdoc" }, { "id" : "Yet Ebreo", - "name" : "Yet Ebreo", "data" : [ [ "Perl", 2 ] - ] + ], + "name" : "Yet Ebreo" } ] }, - "xAxis" : { - "type" : "category" - }, - "tooltip" : { - "pointFormat" : "{point.name}: {point.y:f}
", - "followPointer" : 1, - "headerFormat" : "{series.name}
" - }, - "legend" : { - "enabled" : 0 - }, - "chart" : { - "type" : "column" - }, - "yAxis" : { - "title" : { - "text" : "Total Solutions" - } - }, "plotOptions" : { "series" : { + "borderWidth" : 0, "dataLabels" : { "format" : "{point.y}", "enabled" : 1 - }, - "borderWidth" : 0 - } - }, - "series" : [ - { - "name" : "Perl Weekly Challenge - 050", - "data" : [ - { - "drilldown" : "Alexander Karelas", - "name" : "Alexander Karelas", - "y" : 2 - }, - { - "drilldown" : "Arne Sommer", - "name" : "Arne Sommer", - "y" : 3 - }, - { - "y" : 2, - "name" : "Ben Davies", - "drilldown" : "Ben Davies" - }, - { - "y" : 2, - "drilldown" : "Cheok-Yin Fung", - "name" : "Cheok-Yin Fung" - }, - { - "name" : "Cristina Heredia", - "drilldown" : "Cristina Heredia", - "y" : 1 - }, - { - "drilldown" : "Dave Cross", - "name" : "Dave Cross", - "y" : 2 - }, - { - "name" : "Dave Jacoby", - "drilldown" : "Dave Jacoby", - "y" : 3 - }, - { - "drilldown" : "E. Choroba", - "name" : "E. Choroba", - "y" : 3 - }, - { - "y" : 5, - "name" : "Javier Luque", - "drilldown" : "Javier Luque" - }, - { - "y" : 2, - "drilldown" : "Kevin Colyer", - "name" : "Kevin Colyer" - }, - { - "y" : 5, - "name" : "Laurent Rosenfeld", - "drilldown" : "Laurent Rosenfeld" - }, - { - "y" : 4, - "drilldown" : "Luca Ferrari", - "name" : "Luca Ferrari" - }, - { - "y" : 2, - "drilldown" : "Mark Anderson", - "name" : "Mark Anderson" - }, - { - "drilldown" : "Markus Holzer", - "name" : "Markus Holzer", - "y" : 2 - }, - { - "name" : "Mohammad S Anwar", - "drilldown" : "Mohammad S Anwar", - "y" : 3 - }, - { - "drilldown" : "Noud Aldenhoven", - "name" : "Noud Aldenhoven", - "y" : 2 - }, - { - "name" : "Phillip Harris", - "drilldown" : "Phillip Harris", - "y" : 2 - }, - { - "y" : 4, - "name" : "Roger Bell West", - "drilldown" : "Roger Bell West" - }, - { - "drilldown" : "Saif Ahmed", - "name" : "Saif Ahmed", - "y" : 2 - }, - { - "drilldown" : "Simon Proctor", - "name" : "Simon Proctor", - "y" : 2 - }, - { - "y" : 2, - "drilldown" : "Sol DeMuth", - "name" : "Sol DeMuth" - }, - { - "drilldown" : "Ulrich Rieke", - "name" : "Ulrich Rieke", - "y" : 3 - }, - { - "drilldown" : "Wanderdoc", - "name" : "Wanderdoc", - "y" : 2 - }, - { - "y" : 2, - "drilldown" : "Yet Ebreo", - "name" : "Yet Ebreo" - } - ], - "colorByPoint" : 1 + } } - ], - "subtitle" : { - "text" : "[Champions: 24] Last updated at 2020-03-08 17:44:20 GMT" - }, - "title" : { - "text" : "Perl Weekly Challenge - 050" } } diff --git a/stats/pwc-language-breakdown-summary.json b/stats/pwc-language-breakdown-summary.json index d049885bfe..fcd1a8d1d8 100644 --- a/stats/pwc-language-breakdown-summary.json +++ b/stats/pwc-language-breakdown-summary.json @@ -1,49 +1,12 @@ { - "xAxis" : { - "type" : "category", - "labels" : { - "style" : { - "fontFamily" : "Verdana, sans-serif", - "fontSize" : "13px" - } - } - }, - "tooltip" : { - "pointFormat" : "{point.y:.0f}" - }, "legend" : { "enabled" : "false" }, - "chart" : { - "type" : "column" - }, - "yAxis" : { - "min" : 0, - "title" : { - "text" : null - } - }, "title" : { "text" : "Perl Weekly Challenge Contributions [2019 - 2020]" }, - "subtitle" : { - "text" : "Last updated at 2020-03-08 17:44:20 GMT" - }, "series" : [ { - "dataLabels" : { - "color" : "#FFFFFF", - "y" : 10, - "style" : { - "fontFamily" : "Verdana, sans-serif", - "fontSize" : "13px" - }, - "align" : "right", - "enabled" : "true", - "rotation" : -90, - "format" : "{point.y:.0f}" - }, - "name" : "Contributions", "data" : [ [ "Blog", @@ -51,13 +14,50 @@ ], [ "Perl", - 2091 + 2093 ], [ "Raku", - 1279 + 1281 ] - ] + ], + "name" : "Contributions", + "dataLabels" : { + "enabled" : "true", + "align" : "right", + "format" : "{point.y:.0f}", + "color" : "#FFFFFF", + "y" : 10, + "rotation" : -90, + "style" : { + "fontFamily" : "Verdana, sans-serif", + "fontSize" : "13px" + } + } } - ] + ], + "tooltip" : { + "pointFormat" : "{point.y:.0f}" + }, + "yAxis" : { + "min" : 0, + "title" : { + "text" : null + } + }, + "chart" : { + "type" : "column" + }, + "xAxis" : { + "labels" : { + "style" : { + "fontFamily" : "Verdana, sans-serif", + "fontSize" : "13px" + } + }, + "type" : "category" + }, + "subtitle" : { + "text" : "Last updated at 2020-03-08 19:37:50 GMT" + } } diff --git a/stats/pwc-language-breakdown.json b/stats/pwc-language-breakdown.json index e970d27844..857e5c0f67 100644 --- a/stats/pwc-language-breakdown.json +++ b/stats/pwc-language-breakdown.json @@ -1,284 +1,9 @@ { - "chart" : { - "type" : "column" - }, - "yAxis" : { - "title" : { - "text" : "Total Solutions" - } - }, - "plotOptions" : { - "series" : { - "dataLabels" : { - "enabled" : 1, - "format" : "{point.y}" - }, - "borderWidth" : 0 - } - }, - "series" : [ - { - "name" : "Perl Weekly Challenge Languages", - "data" : [ - { - "name" : "#001", - "drilldown" : "001", - "y" : 140 - }, - { - "name" : "#002", - "drilldown" : "002", - "y" : 109 - }, - { - "name" : "#003", - "drilldown" : "003", - "y" : 71 - }, - { - "y" : 91, - "drilldown" : "004", - "name" : "#004" - }, - { - "y" : 71, - "name" : "#005", - "drilldown" : "005" - }, - { - "drilldown" : "006", - "name" : "#006", - "y" : 52 - }, - { - "y" : 58, - "drilldown" : "007", - "name" : "#007" - }, - { - "drilldown" : "008", - "name" : "#008", - "y" : 70 - }, - { - "y" : 68, - "drilldown" : "009", - "name" : "#009" - }, - { - "name" : "#010", - "drilldown" : "010", - "y" : 60 - }, - { - "drilldown" : "011", - "name" : "#011", - "y" : 79 - }, - { - "drilldown" : "012", - "name" : "#012", - "y" : 83 - }, - { - "y" : 76, - "name" : "#013", - "drilldown" : "013" - }, - { - "drilldown" : "014", - "name" : "#014", - "y" : 96 - }, - { - "name" : "#015", - "drilldown" : "015", - "y" : 93 - }, - { - "drilldown" : "016", - "name" : "#016", - "y" : 66 - }, - { - "y" : 79, - "name" : "#017", - "drilldown" : "017" - }, - { - "drilldown" : "018", - "name" : "#018", - "y" : 76 - }, - { - "y" : 95, - "drilldown" : "019", - "name" : "#019" - }, - { - "y" : 95, - "drilldown" : "020", - "name" : "#020" - }, - { - "drilldown" : "021", - "name" : "#021", - "y" : 67 - }, - { - "y" : 63, - "drilldown" : "022", - "name" : "#022" - }, - { - "name" : "#023", - "drilldown" : "023", - "y" : 91 - }, - { - "drilldown" : "024", - "name" : "#024", - "y" : 70 - }, - { - "drilldown" : "025", - "name" : "#025", - "y" : 55 - }, - { - "y" : 70, - "drilldown" : "026", - "name" : "#026" - }, - { - "drilldown" : "027", - "name" : "#027", - "y" : 58 - }, - { - "y" : 78, - "name" : "#028", - "drilldown" : "028" - }, - { - "name" : "#029", - "drilldown" : "029", - "y" : 77 - }, - { - "name" : "#030", - "drilldown" : "030", - "y" : 115 - }, - { - "y" : 87, - "drilldown" : "031", - "name" : "#031" - }, - { - "drilldown" : "032", - "name" : "#032", - "y" : 92 - }, - { - "drilldown" : "033", - "name" : "#033", - "y" : 108 - }, - { - "y" : 62, - "name" : "#034", - "drilldown" : "034" - }, - { - "y" : 62, - "name" : "#035", - "drilldown" : "035" - }, - { - "y" : 63, - "name" : "#036", - "drilldown" : "036" - }, - { - "drilldown" : "037", - "name" : "#037", - "y" : 63 - }, - { - "name" : "#038", - "drilldown" : "038", - "y" : 65 - }, - { - "drilldown" : "039", - "name" : "#039", - "y" : 60 - }, - { - "drilldown" : "040", - "name" : "#040", - "y" : 66 - }, - { - "drilldown" : "041", - "name" : "#041", - "y" : 69 - }, - { - "y" : 88, - "drilldown" : "042", - "name" : "#042" - }, - { - "name" : "#043", - "drilldown" : "043", - "y" : 65 - }, - { - "y" : 81, - "name" : "#044", - "drilldown" : "044" - }, - { - "y" : 94, - "drilldown" : "045", - "name" : "#045" - }, - { - "name" : "#046", - "drilldown" : "046", - "y" : 83 - }, - { - "name" : "#047", - "drilldown" : "047", - "y" : 80 - }, - { - "y" : 105, - "name" : "#048", - "drilldown" : "048" - }, - { - "drilldown" : "049", - "name" : "#049", - "y" : 80 - }, - { - "name" : "#050", - "drilldown" : "050", - "y" : 62 - } - ], - "colorByPoint" : "true" - } - ], - "title" : { - "text" : "Perl Weekly Challenge Language" + "xAxis" : { + "type" : "category" }, "subtitle" : { - "text" : "Click the columns to drilldown the language breakdown. Last updated at 2020-03-08 17:44:20 GMT" + "text" : "Click the columns to drilldown the language breakdown. Last updated at 2020-03-08 19:37:50 GMT" }, "drilldown" : { "series" : [ @@ -297,10 +22,11 @@ 11 ] ], - "name" : "001", - "id" : "001" + "id" : "001", + "name" : "001" }, { + "id" : "002", "data" : [ [ "Perl", @@ -315,11 +41,9 @@ 10 ] ], - "id" : "002", "name" : "002" }, { - "id" : "003", "name" : "003", "data" : [ [ @@ -334,11 +58,11 @@ "Blog", 9 ] - ] + ], + "id" : "003" }, { "name" : "004", - "id" : "004", "data" : [ [ "Perl", @@ -352,9 +76,11 @@ "Blog", 10 ] - ] + ], + "id" : "004" }, { + "name" : "005", "data" : [ [ "Perl", @@ -369,10 +95,10 @@ 12 ] ], - "name" : "005", "id" : "005" }, { + "id" : "006", "data" : [ [ "Perl", @@ -387,10 +113,11 @@ 7 ] ], - "id" : "006", "name" : "006" }, { + "name" : "007", + "id" : "007", "data" : [ [ "Perl", @@ -404,11 +131,10 @@ "Blog", 10 ] - ], - "name" : "007", - "id" : "007" + ] }, { + "name" : "008", "data" : [ [ "Perl", @@ -423,10 +149,11 @@ 12 ] ], - "name" : "008", "id" : "008" }, { + "name" : "009", + "id" : "009", "data" : [ [ "Perl", @@ -440,11 +167,10 @@ "Blog", 13 ] - ], - "id" : "009", - "name" : "009" + ] }, { + "id" : "010", "data" : [ [ "Perl", @@ -459,11 +185,9 @@ 11 ] ], - "id" : "010", "name" : "010" }, { - "name" : "011", "id" : "011", "data" : [ [ @@ -478,9 +202,11 @@ "Blog", 10 ] - ] + ], + "name" : "011" }, { + "name" : "012", "data" : [ [ "Perl", @@ -495,12 +221,10 @@ 11 ] ], - "name" : "012", "id" : "012" }, { "id" : "013", - "name" : "013", "data" : [ [ "Perl", @@ -514,9 +238,12 @@ "Blog", 13 ] - ] + ], + "name" : "013" }, { + "name" : "014", + "id" : "014", "data" : [ [ "Perl", @@ -530,11 +257,10 @@ "Blog", 15 ] - ], - "id" : "014", - "name" : "014" + ] }, { + "id" : "015", "data" : [ [ "Perl", @@ -549,12 +275,10 @@ 15 ] ], - "name" : "015", - "id" : "015" + "name" : "015" }, { "id" : "016", - "name" : "016", "data" : [ [ "Perl", @@ -568,11 +292,11 @@ "Blog", 12 ] - ] + ], + "name" : "016" }, { "name" : "017", - "id" : "017", "data" : [ [ "Perl", @@ -586,9 +310,11 @@ "Blog", 12 ] - ] + ], + "id" : "017" }, { + "name" : "018", "data" : [ [ "Perl", @@ -603,8 +329,7 @@ 14 ] ], - "id" : "018", - "name" : "018" + "id" : "018" }, { "data" : [ @@ -621,12 +346,11 @@ 13 ] ], - "name" : "019", - "id" : "019" + "id" : "019", + "name" : "019" }, { "id" : "020", - "name" : "020", "data" : [ [ "Perl", @@ -640,7 +364,8 @@ "Blog", 13 ] - ] + ], + "name" : "020" }, { "name" : "021", @@ -661,6 +386,7 @@ ] }, { + "id" : "022", "data" : [ [ "Perl", @@ -675,7 +401,6 @@ 10 ] ], - "id" : "022", "name" : "022" }, { @@ -711,8 +436,8 @@ 11 ] ], - "name" : "024", - "id" : "024" + "id" : "024", + "name" : "024" }, { "data" : [ @@ -729,8 +454,8 @@ 12 ] ], - "name" : "025", - "id" : "025" + "id" : "025", + "name" : "025" }, { "name" : "026", @@ -751,7 +476,6 @@ ] }, { - "name" : "027", "id" : "027", "data" : [ [ @@ -766,11 +490,11 @@ "Blog", 9 ] - ] + ], + "name" : "027" }, { "name" : "028", - "id" : "028", "data" : [ [ "Perl", @@ -784,9 +508,12 @@ "Blog", 9 ] - ] + ], + "id" : "028" }, { + "name" : "029", + "id" : "029", "data" : [ [ "Perl", @@ -800,13 +527,9 @@ "Blog", 12 ] - ], - "name" : "029", - "id" : "029" + ] }, { - "name" : "030", - "id" : "030", "data" : [ [ "Perl", @@ -820,7 +543,9 @@ "Blog", 10 ] - ] + ], + "id" : "030", + "name" : "030" }, { "data" : [ @@ -837,12 +562,11 @@ 9 ] ], - "name" : "031", - "id" : "031" + "id" : "031", + "name" : "031" }, { "id" : "032", - "name" : "032", "data" : [ [ "Perl", @@ -856,9 +580,11 @@ "Blog", 10 ] - ] + ], + "name" : "032" }, { + "name" : "033", "data" : [ [ "Perl", @@ -873,10 +599,10 @@ 10 ] ], - "name" : "033", "id" : "033" }, { + "id" : "034", "data" : [ [ "Perl", @@ -891,7 +617,6 @@ 11 ] ], - "id" : "034", "name" : "034" }, { @@ -913,6 +638,7 @@ "name" : "035" }, { + "name" : "036", "data" : [ [ "Perl", @@ -927,11 +653,9 @@ 10 ] ], - "id" : "036", - "name" : "036" + "id" : "036" }, { - "id" : "037", "name" : "037", "data" : [ [ @@ -946,11 +670,12 @@ "Blog", 9 ] - ] + ], + "id" : "037" }, { - "id" : "038", "name" : "038", + "id" : "038", "data" : [ [ "Perl", @@ -967,7 +692,6 @@ ] }, { - "name" : "039", "id" : "039", "data" : [ [ @@ -982,9 +706,11 @@ "Blog", 12 ] - ] + ], + "name" : "039" }, { + "name" : "040", "data" : [ [ "Perl", @@ -999,12 +725,11 @@ 9 ] ], - "name" : "040", "id" : "040" }, { - "id" : "041", "name" : "041", + "id" : "041", "data" : [ [ "Perl", @@ -1021,6 +746,8 @@ ] }, { + "name" : "042", + "id" : "042", "data" : [ [ "Perl", @@ -1034,11 +761,11 @@ "Blog", 11 ] - ], - "id" : "042", - "name" : "042" + ] }, { + "name" : "043", + "id" : "043", "data" : [ [ "Perl", @@ -1052,11 +779,10 @@ "Blog", 10 ] - ], - "name" : "043", - "id" : "043" + ] }, { + "name" : "044", "data" : [ [ "Perl", @@ -1071,8 +797,7 @@ 10 ] ], - "id" : "04