aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad Sajid Anwar <mohammad.anwar@yahoo.com>2024-08-12 14:58:54 +0100
committerMohammad Sajid Anwar <mohammad.anwar@yahoo.com>2024-08-12 14:58:54 +0100
commit7d94e5811f0f86d22b604b3cd678b0125d39570a (patch)
tree2653b2e29d1cd19138226548e7cdcc24581e56a7
parent3a7c7b9c0de30f21dcbe02dc84f908fe6ac72365 (diff)
downloadperlweeklychallenge-club-7d94e5811f0f86d22b604b3cd678b0125d39570a.tar.gz
perlweeklychallenge-club-7d94e5811f0f86d22b604b3cd678b0125d39570a.tar.bz2
perlweeklychallenge-club-7d94e5811f0f86d22b604b3cd678b0125d39570a.zip
- Added solutions by Ulrich Rieke.
-rwxr-xr-xchallenge-282/ulrich-rieke/cpp/ch-1.cpp25
-rwxr-xr-xchallenge-282/ulrich-rieke/cpp/ch-2.cpp29
-rwxr-xr-xchallenge-282/ulrich-rieke/haskell/ch-1.hs16
-rwxr-xr-xchallenge-282/ulrich-rieke/haskell/ch-2.hs8
-rwxr-xr-xchallenge-282/ulrich-rieke/perl/ch-1.pl23
-rwxr-xr-xchallenge-282/ulrich-rieke/perl/ch-2.pl19
-rwxr-xr-xchallenge-282/ulrich-rieke/raku/ch-1.raku12
-rwxr-xr-xchallenge-282/ulrich-rieke/raku/ch-2.raku9
-rwxr-xr-xchallenge-282/ulrich-rieke/rust/ch-1.rs19
-rwxr-xr-xchallenge-282/ulrich-rieke/rust/ch-2.rs20
-rw-r--r--stats/pwc-current.json117
-rw-r--r--stats/pwc-language-breakdown-2019.json308
-rw-r--r--stats/pwc-language-breakdown-2020.json354
-rw-r--r--stats/pwc-language-breakdown-2021.json370
-rw-r--r--stats/pwc-language-breakdown-2022.json384
-rw-r--r--stats/pwc-language-breakdown-2023.json742
-rw-r--r--stats/pwc-language-breakdown-2024.json504
-rw-r--r--stats/pwc-language-breakdown-summary.json50
-rw-r--r--stats/pwc-leaders.json738
-rw-r--r--stats/pwc-summary-1-30.json38
-rw-r--r--stats/pwc-summary-121-150.json118
-rw-r--r--stats/pwc-summary-151-180.json108
-rw-r--r--stats/pwc-summary-181-210.json30
-rw-r--r--stats/pwc-summary-211-240.json120
-rw-r--r--stats/pwc-summary-241-270.json118
-rw-r--r--stats/pwc-summary-271-300.json110
-rw-r--r--stats/pwc-summary-301-330.json88
-rw-r--r--stats/pwc-summary-31-60.json32
-rw-r--r--stats/pwc-summary-61-90.json122
-rw-r--r--stats/pwc-summary-91-120.json38
-rw-r--r--stats/pwc-summary.json42
-rw-r--r--stats/pwc-yearly-language-summary.json134
32 files changed, 2522 insertions, 2323 deletions
diff --git a/challenge-282/ulrich-rieke/cpp/ch-1.cpp b/challenge-282/ulrich-rieke/cpp/ch-1.cpp
new file mode 100755
index 0000000000..aceb6a89fa
--- /dev/null
+++ b/challenge-282/ulrich-rieke/cpp/ch-1.cpp
@@ -0,0 +1,25 @@
+#include <iostream>
+#include <vector>
+#include <algorithm>
+#include <string>
+
+int main( ) {
+ std::cout << "Enter a long string consisting of digits only!\n" ;
+ std::string number ;
+ std::cin >> number ;
+ std::vector<std::string> triplets , selected ;
+ int pos = 0 ;
+ while ( pos < number.length( ) - 2 ) {
+ triplets.push_back( number.substr( pos , 3 ) ) ;
+ pos++ ;
+ }
+ std::copy_if( triplets.begin( ) , triplets.end( ) ,
+ std::back_inserter( selected ) , []( const auto & s ) {
+ return s.at( 0 ) == s.at( 1 ) && s.at( 1 ) == s.at( 2 ) ; } ) ;
+ if ( selected.size( ) == 0 )
+ std::cout << -1 << '\n' ;
+ else
+ std::cout << selected[0].substr( 0 , 1 ) << '\n' ;
+ return 0 ;
+}
+
diff --git a/challenge-282/ulrich-rieke/cpp/ch-2.cpp b/challenge-282/ulrich-rieke/cpp/ch-2.cpp
new file mode 100755
index 0000000000..e60fe3f932
--- /dev/null
+++ b/challenge-282/ulrich-rieke/cpp/ch-2.cpp
@@ -0,0 +1,29 @@
+#include <iostream>
+#include <string>
+#include <cctype>
+#include <algorithm>
+#include <vector>
+
+std::string to_lower( std::string aWord ) {
+ std::transform( aWord.begin( ) , aWord.end( ) , aWord.begin( ) ,
+ tolower ) ;
+ return aWord ;
+}
+
+int main( ) {
+ std::cout << "Please enter an alphabetic word!\n" ;
+ std::string word ;
+ std::cin >> word ;
+ int pos = 0 ;
+ std::vector<std::string> pairs ;
+ while ( pos < word.length( ) - 2 ) {
+ pairs.push_back( word.substr( pos , 2 ) ) ;
+ pairs.push_back( word.substr( pos + 1 , 2 ) ) ;
+ pos += 2 ;
+ }
+ std::transform( pairs.begin( ) , pairs.end( ) , pairs.begin( ) ,
+ to_lower ) ;
+ std::cout << std::count_if( pairs.begin( ) , pairs.end( ) , []( const
+ auto & s ) { return s.at( 0 ) != s.at( 1 ) ; }) << '\n' ;
+ return 0 ;
+}
diff --git a/challenge-282/ulrich-rieke/haskell/ch-1.hs b/challenge-282/ulrich-rieke/haskell/ch-1.hs
new file mode 100755
index 0000000000..9377af7d12
--- /dev/null
+++ b/challenge-282/ulrich-rieke/haskell/ch-1.hs
@@ -0,0 +1,16 @@
+module Challenge282
+ where
+import Data.List.Split ( divvy )
+import Data.Char ( digitToInt )
+import Data.List ( group )
+
+solution :: String -> Int
+solution s = if null grouped then -1 else digitToInt $ head $ head grouped
+ where
+ grouped = filter (\gr -> length gr == 3 ) $ group s
+
+main :: IO ( )
+main = do
+ putStrLn "Enter a string consisting of digits only!"
+ numberstring <- getLine
+ print $ solution numberstring
diff --git a/challenge-282/ulrich-rieke/haskell/ch-2.hs b/challenge-282/ulrich-rieke/haskell/ch-2.hs
new file mode 100755
index 0000000000..617c6f1884
--- /dev/null
+++ b/challenge-282/ulrich-rieke/haskell/ch-2.hs
@@ -0,0 +1,8 @@
+module Challenge282_2
+ where
+import Data.List.Split ( divvy )
+import Data.Char ( toLower )
+
+solution :: String -> Int
+solution s = length $ filter (\w -> head w /= last w ) $ map ( map toLower)
+ $ divvy 2 1 s
diff --git a/challenge-282/ulrich-rieke/perl/ch-1.pl b/challenge-282/ulrich-rieke/perl/ch-1.pl
new file mode 100755
index 0000000000..4416abccc6
--- /dev/null
+++ b/challenge-282/ulrich-rieke/perl/ch-1.pl
@@ -0,0 +1,23 @@
+#!/usr/bin/perl ;
+use strict ;
+use warnings ;
+use feature 'say' ;
+
+say "Enter a long integer!" ;
+my $number = <STDIN> ;
+chomp $number ;
+my $pos = 0 ;
+my @triplets ;
+my @selected ;
+while ( $pos < length( $number ) - 2 ) {
+ push( @triplets , substr( $number , $pos , 3 ) ) ;
+ $pos += 1 ;
+}
+@selected = grep { substr( $_ , 0 , 1 ) eq substr( $_ , 1 , 1 ) &&
+ substr( $_ , 1 , 1 ) eq substr( $_ , 2 , 1 ) } @triplets ;
+if ( scalar( @selected ) > 0 ) {
+ say substr( $selected[0] , 0 , 1 ) ;
+}
+else {
+ say -1 ;
+}
diff --git a/challenge-282/ulrich-rieke/perl/ch-2.pl b/challenge-282/ulrich-rieke/perl/ch-2.pl
new file mode 100755
index 0000000000..f972680dd4
--- /dev/null
+++ b/challenge-282/ulrich-rieke/perl/ch-2.pl
@@ -0,0 +1,19 @@
+#!/usr/bin/perl ;
+use strict ;
+use warnings ;
+use feature 'say' ;
+
+say "Enter an alphabetic string!" ;
+my $word = <STDIN> ;
+chomp $word ;
+#create pairs of neighbouring characters , convert them to either uppercase
+#or lowercase and count the number of pairs with unequal letters
+my @pairs ;
+my $pos = 0 ;
+while ( $pos < length( $word ) - 2 ) {
+ push( @pairs , substr( $word , $pos , 2 ) ) ;
+ push( @pairs , substr( $word , $pos + 1 , 2 )) ;
+ $pos += 2 ;
+}
+say scalar( grep { substr( $_ , 0 , 1 ) ne substr( $_ , 1 , 1 ) } map {
+join ( '' , map { lc } split( // , $_ )) } @pairs ) ;
diff --git a/challenge-282/ulrich-rieke/raku/ch-1.raku b/challenge-282/ulrich-rieke/raku/ch-1.raku
new file mode 100755
index 0000000000..64d0973ff6
--- /dev/null
+++ b/challenge-282/ulrich-rieke/raku/ch-1.raku
@@ -0,0 +1,12 @@
+use v6 ;
+
+say "Enter a long integer!" ;
+my $number = $*IN.get ;
+my @triplets = $number.comb.rotor( 3 => -2 ) ;
+my @selected = @triplets.grep( { $_[0] eq $_[1] && $_[1] eq $_[2] } ) ;
+if ( @selected.elems == 0 ) {
+ say -1 ;
+}
+else {
+ say @selected[0][0] ;
+}
diff --git a/challenge-282/ulrich-rieke/raku/ch-2.raku b/challenge-282/ulrich-rieke/raku/ch-2.raku
new file mode 100755
index 0000000000..7f98446273
--- /dev/null
+++ b/challenge-282/ulrich-rieke/raku/ch-2.raku
@@ -0,0 +1,9 @@
+use v6 ;
+
+say "Enter an alphabetic string!" ;
+my $word = $*IN.get ;
+#we create pairs of neighbouring letters and convert every member of these
+#pairs into lowercase letters. After that , we count the pairs with
+#unequal letters
+say $word.comb.rotor( 2 => -1 ).map( {$_.map( {.lc} ) } ).grep( {$_[0] ne
+ $_[1] } ).elems ;
diff --git a/challenge-282/ulrich-rieke/rust/ch-1.rs b/challenge-282/ulrich-rieke/rust/ch-1.rs
new file mode 100755
index 0000000000..3b013ef45f
--- /dev/null
+++ b/challenge-282/ulrich-rieke/rust/ch-1.rs
@@ -0,0 +1,19 @@
+use std::io ;
+
+fn main() {
+ println!("Enter a long integer!");
+ let mut inline : String = String::new( ) ;
+ io::stdin( ).read_line( &mut inline ).unwrap( ) ;
+ let entered_line : &str = inline.as_str( ).trim( ) ;
+ let my_chars : Vec<char> = entered_line.chars( ).collect( ) ;
+ let my_slice = &my_chars[..] ;
+ let triplets : Vec<_> = my_slice.windows( 3 ).collect( ) ;
+ let selected : Vec<_> = triplets.into_iter( ).filter( | &vec |
+ vec[0] == vec[1] && vec[1] == vec[2] ).collect( ) ;
+ if selected.len( ) == 0 {
+ println!("-1" ) ;
+ }
+ else {
+ println!("{}" , selected[0].get( 0 ).unwrap( ) ) ;
+ }
+}
diff --git a/challenge-282/ulrich-rieke/rust/ch-2.rs b/challenge-282/ulrich-rieke/rust/ch-2.rs
new file mode 100755
index 0000000000..145b3518ba
--- /dev/null
+++ b/challenge-282/ulrich-rieke/rust/ch-2.rs
@@ -0,0 +1,20 @@
+use std::io ;
+
+fn main() {
+ println!("Enter an alphabetic string!");
+ let mut inline : String = String::new( ) ;
+ io::stdin( ).read_line( & mut inline ).unwrap( ) ;
+ let entered_line : &str = inline.as_str( ).trim( ) ;
+ let letters : Vec<char> = entered_line.chars( ).collect( ) ;
+ let letterslice = &letters[..] ;
+ let mut count : u8 = 0 ;
+ let mut iter = letterslice.windows( 2 ) ;
+ while let Some( pair ) = iter.next( ) {
+ let first_char : char = pair[0].to_ascii_lowercase( ) ;
+ let second_char : char = pair[1].to_ascii_lowercase( ) ;
+ if first_char != second_char {
+ count += 1 ;
+ }
+ }
+ println!("{}" , count ) ;
+}
diff --git a/stats/pwc-current.json b/stats/pwc-current.json
index c2db945a14..680ff402f1 100644
--- a/stats/pwc-current.json
+++ b/stats/pwc-current.json
@@ -1,59 +1,81 @@
{
- "yAxis" : {
- "title" : {
- "text" : "Total Solutions"
- }
- },
- "xAxis" : {
- "type" : "category"
+ "chart" : {
+ "type" : "column"
},
"legend" : {
"enabled" : 0
},
+ "series" : [
+ {
+ "colorByPoint" : 1,
+ "data" : [
+ {
+ "drilldown" : "Feng Chang",
+ "name" : "Feng Chang",
+ "y" : 2
+ },
+ {
+ "y" : 2,
+ "drilldown" : "Mark Anderson",
+ "name" : "Mark Anderson"
+ },
+ {
+ "drilldown" : "Peter Campbell Smith",
+ "name" : "Peter Campbell Smith",
+ "y" : 3
+ },
+ {
+ "drilldown" : "Ulrich Rieke",
+ "name" : "Ulrich Rieke",
+ "y" : 4
+ },
+ {
+ "y" : 3,
+ "name" : "W. Luis Mochan",
+ "drilldown" : "W. Luis Mochan"
+ }
+ ],
+ "name" : "The Weekly Challenge - 282"
+ }
+ ],
"plotOptions" : {
"series" : {
"borderWidth" : 0,
"dataLabels" : {
- "format" : "{point.y}",
- "enabled" : 1
+ "enabled" : 1,
+ "format" : "{point.y}"
}
}
},
- "tooltip" : {
- "followPointer" : 1,
- "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/>"
+ "xAxis" : {
+ "type" : "category"
},
"title" : {
"text" : "The Weekly Challenge - 282"
},
- "chart" : {
- "type" : "column"
- },
"drilldown" : {
"series" : [
{
- "id" : "Feng Chang",
"name" : "Feng Chang",
"data" : [
[
"Raku",
2
]
- ]
+ ],
+ "id" : "Feng Chang"
},
{
+ "id" : "Mark Anderson",
"data" : [
[
"Raku",
2
]
],
- "id" : "Mark Anderson",
"name" : "Mark Anderson"
},
{
- "name" : "Peter Campbell Smith",
"id" : "Peter Campbell Smith",
"data" : [
[
@@ -64,7 +86,22 @@
"Blog",
1
]
- ]
+ ],
+ "name" : "Peter Campbell Smith"
+ },
+ {
+ "name" : "Ulrich Rieke",
+ "data" : [
+ [
+ "Perl",
+ 2
+ ],
+ [
+ "Raku",
+ 2
+ ]
+ ],
+ "id" : "Ulrich Rieke"
},
{
"data" : [
@@ -82,35 +119,17 @@
}
]
},
+ "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/>"
+ },
"subtitle" : {
- "text" : "[Champions: 4] Last updated at 2024-08-12 12:21:11 GMT"
+ "text" : "[Champions: 5] Last updated at 2024-08-12 13:58:48 GMT"
},
- "series" : [
- {
- "data" : [
- {
- "drilldown" : "Feng Chang",
- "name" : "Feng Chang",
- "y" : 2
- },
- {
- "name" : "Mark Anderson",
- "drilldown" : "Mark Anderson",
- "y" : 2
- },
- {
- "y" : 3,
- "drilldown" : "Peter Campbell Smith",
- "name" : "Peter Campbell Smith"
- },
- {
- "y" : 3,
- "drilldown" : "W. Luis Mochan",
- "name" : "W. Luis Mochan"
- }
- ],
- "colorByPoint" : 1,
- "name" : "The Weekly Challenge - 282"
+ "yAxis" : {
+ "title" : {
+ "text" : "Total Solutions"
}
- ]
+ }
}
diff --git a/stats/pwc-language-breakdown-2019.json b/stats/pwc-language-breakdown-2019.json
index c050db46f5..7a2085112d 100644
--- a/stats/pwc-language-breakdown-2019.json
+++ b/stats/pwc-language-breakdown-2019.json
@@ -1,10 +1,19 @@
{
+ "plotOptions" : {
+ "series" : {
+ "borderWidth" : 0,
+ "dataLabels" : {
+ "enabled" : 1,
+ "format" : "{point.y}"
+ }
+ }
+ },
+ "xAxis" : {
+ "type" : "category"
+ },
"title" : {
"text" : "The Weekly Challenge Language"
},
- "chart" : {
- "type" : "column"
- },
"drilldown" : {
"series" : [
{
@@ -22,10 +31,11 @@
9
]
],
- "name" : "041",
- "id" : "041"
+ "id" : "041",
+ "name" : "041"
},
{
+ "id" : "040",
"data" : [
[
"Perl",
@@ -40,12 +50,9 @@
10
]
],
- "id" : "040",
"name" : "040"
},
{
- "name" : "039",
- "id" : "039",
"data" : [
[
"Perl",
@@ -59,7 +66,9 @@
"Blog",
12
]
- ]
+ ],
+ "id" : "039",
+ "name" : "039"
},
{
"data" : [
@@ -76,11 +85,10 @@
12
]
],
- "name" : "038",
- "id" : "038"
+ "id" : "038",
+ "name" : "038"
},
{
- "name" : "037",
"id" : "037",
"data" : [
[
@@ -95,11 +103,12 @@
"Blog",
9
]
- ]
+ ],
+ "name" : "037"
},
{
- "id" : "036",
"name" : "036",
+ "id" : "036",
"data" : [
[
"Perl",
@@ -130,8 +139,8 @@
9
]
],
- "name" : "035",
- "id" : "035"
+ "id" : "035",
+ "name" : "035"
},
{
"data" : [
@@ -148,11 +157,10 @@
11
]
],
- "name" : "034",
- "id" : "034"
+ "id" : "034",
+ "name" : "034"
},
{
- "id" : "033",
"name" : "033",
"data" : [
[
@@ -167,7 +175,8 @@
"Blog",
10
]
- ]
+ ],
+ "id" : "033"
},
{
"data" : [
@@ -184,10 +193,11 @@
10
]
],
- "name" : "032",
- "id" : "032"
+ "id" : "032",
+ "name" : "032"
},
{
+ "id" : "031",
"data" : [
[
"Perl",
@@ -202,10 +212,10 @@
9
]
],
- "name" : "031",
- "id" : "031"
+ "name" : "031"
},
{
+ "id" : "030",
"data" : [
[
"Perl",
@@ -220,11 +230,9 @@
10
]
],
- "name" : "030",
- "id" : "030"
+ "name" : "030"
},
{
- "id" : "029",
"name" : "029",
"data" : [
[
@@ -239,11 +247,11 @@
"Blog",
12
]
- ]
+ ],
+ "id" : "029"
},
{
"name" : "028",
- "id" : "028",
"data" : [
[
"Perl",
@@ -257,9 +265,11 @@
"Blog",
9
]
- ]
+ ],
+ "id" : "028"
},
{
+ "name" : "027",
"data" : [
[
"Perl",
@@ -274,12 +284,10 @@
9
]
],
- "name" : "027",
"id" : "027"
},
{
"name" : "026",
- "id" : "026",
"data" : [
[
"Perl",
@@ -293,7 +301,8 @@
"Blog",
10
]
- ]
+ ],
+ "id" : "026"
},
{
"data" : [
@@ -310,8 +319,8 @@
12
]
],
- "name" : "025",
- "id" : "025"
+ "id" : "025",
+ "name" : "025"
},
{
"name" : "024",
@@ -350,6 +359,8 @@
"name" : "023"
},
{
+ "name" : "022",
+ "id" : "022",
"data" : [
[
"Perl",
@@ -363,9 +374,7 @@
"Blog",
10
]
- ],
- "id" : "022",
- "name" : "022"
+ ]
},
{
"data" : [
@@ -386,8 +395,6 @@
"name" : "021"
},
{
- "id" : "020",
- "name" : "020",
"data" : [
[
"Perl",
@@ -401,10 +408,11 @@
"Blog",
13
]
- ]
+ ],
+ "id" : "020",
+ "name" : "020"
},
{
- "id" : "019",
"name" : "019",
"data" : [
[
@@ -419,10 +427,10 @@
"Blog",
13
]
- ]
+ ],
+ "id" : "019"
},
{
- "name" : "018",
"id" : "018",
"data" : [
[
@@ -437,11 +445,10 @@
"Blog",
14
]
- ]
+ ],
+ "name" : "018"
},
{
- "name" : "017",
- "id" : "017",
"data" : [
[
"Perl",
@@ -455,11 +462,11 @@
"Blog",
12
]
- ]
+ ],
+ "id" : "017",
+ "name" : "017"
},
{
- "name" : "016",
- "id" : "016",
"data" : [
[
"Perl",
@@ -473,9 +480,12 @@
"Blog",
13
]
- ]
+ ],
+ "id" : "016",
+ "name" : "016"
},
{
+ "name" : "015",
"data" : [
[
"Perl",
@@ -490,10 +500,10 @@
15
]
],
- "name" : "015",
"id" : "015"
},
{
+ "name" : "014",
"data" : [
[
"Perl",
@@ -508,10 +518,10 @@
15
]
],
- "id" : "014",
- "name" : "014"
+ "id" : "014"
},
{
+ "id" : "013",
"data" : [
[
"Perl",
@@ -526,10 +536,10 @@
13
]
],
- "id" : "013",
"name" : "013"
},
{
+ "name" : "012",
"data" : [
[
"Perl",
@@ -544,7 +554,6 @@
11
]
],
- "name" : "012",
"id" : "012"
},
{
@@ -562,12 +571,11 @@
10
]
],
- "name" : "011",
- "id" : "011"
+ "id" : "011",
+ "name" : "011"
},
{
"id" : "010",
- "name" : "010",
"data" : [
[
"Perl",
@@ -581,9 +589,12 @@
"Blog",
11
]
- ]
+ ],
+ "name" : "010"
},
{
+ "name" : "009",
+ "id" : "009",
"data" : [
[
"Perl",
@@ -597,13 +608,11 @@
"Blog",
13
]
- ],
- "id" : "009",
- "name" : "009"
+ ]
},
{
- "id" : "008",
"name" : "008",
+ "id" : "008",
"data" : [
[
"Perl",
@@ -620,8 +629,8 @@
]
},
{
- "id" : "007",
"name" : "007",
+ "id" : "007",
"data" : [
[
"Perl",
@@ -638,6 +647,8 @@
]
},
{
+ "name" : "006",
+ "id" : "006",
"data" : [
[
"Perl",
@@ -651,13 +662,10 @@
"Blog",
7
]
- ],
- "name" : "006",
- "id" : "006"
+ ]
},
{
"id" : "005",
- "name" : "005",
"data" : [
[
"Perl",
@@ -671,9 +679,11 @@
"Blog",
12
]
- ]
+ ],
+ "name" : "005"
},
{
+ "name" : "004",
"data" : [
[
"Perl",
@@ -688,8 +698,7 @@
10
]
],
- "id" : "004",
- "name" : "004"
+ "id" : "004"
},
{
"data" : [
@@ -706,8 +715,8 @@
9
]
],
- "name" : "003",
- "id" : "003"
+ "id" : "003",
+ "name" : "003"
},
{
"name" : "002",
@@ -728,6 +737,7 @@
]
},
{
+ "name" : "001",
"data" : [
[
"Perl",
@@ -742,11 +752,26 @@
12
]