Rosetta Code/Rank languages by number of users: Difference between revisions

m
→‎{{header|Perl 6}}: Style tweaks, minor enhancements, update list
m (→‎{{header|zkl}}: removed dead code)
m (→‎{{header|Perl 6}}: Style tweaks, minor enhancements, update list)
Line 33:
 
<lang perl6>use HTTP::UserAgent;
use URI::Escape;
use JSON::Fast;
 
my $client = HTTP::UserAgent.new;
say "========= Generated: { DateTime.new(time) } =========";
 
my $url = 'http://rosettacode.org/mw';
 
my $start-time = now;
 
say "========= Generated: { DateTime.new(time) } =========";
 
my $lang = 1;
my $rank = 0;
Line 44 ⟶ 51:
 
.say for
mediawiki-query('http://rosettacode.org/mw', 'pages',
generator =>$url, 'categorymemberspages',
:generator<categorymembers>,
:gcmtitle => "<Category:Language users">,
prop => 'categoryinfo')\
:gcmlimit<350>,
:rawcontinue(),
:prop<categoryinfo>
)\
 
.map({ %( count => .<categoryinfo><pages> || 0,
Line 65 ⟶ 76:
sub mediawiki-query ($site, $type, *%query) {
my $url = "$site/api.php?" ~ uri-query-string(
:action<query>, :format<json>, :gcmlimitformatversion<3502>, :rawcontinue(), |%query);
my $continue = '';
my $client = HTTP::UserAgent.new;
 
gather loop {
my $response = $client.get("$url&$continue");
 
my $data = from-json($response.content);
take $_ for $data.<query>.{$type}.values;
 
$continue = uri-query-string |($data.<query-continue>{*}».hash.hash or last);
}
}
 
sub uri-query-string (*%fields) { %fields.map({ "{.key}={uri-escape .value}" }).join("&") }</lang>
%fields.map({ "{.key}={uri-encode .value}" }).join("&")
}
 
sub uri-encode ($str) {
$str.subst(/<[\x00..\xff]-[a..zA..Z0..9_.~-]>/, *.ord.fmt('%%%02X'), :g)
}</lang>
 
{{out}}
<pre>========= Generated: 2017-12-18T1323T14:5007:32Z11Z =========
# 1 Rank: 1 with 373 users: C
# 2 Rank: 2 with 261262 users: C++
# 3 Rank: 3 with 257258 users: Java
# 4 Rank: 4 with 243244 users: Python
# 5 Rank: 5 with 228 users: JavaScript
# 6 Rank: 6 with 163 users: PHP
# 7 Rank: 7 with 162 users: Perl
# 8 Rank: 8 with 131 users: SQL
# 9 Rank: 9 with 120121 users: UNIX Shell
# 10 Rank: 10 with 118 users: BASIC
# 11 Rank: 11 with 113 users: C sharp
Line 134 ⟶ 136:
# 44 Rank: 43 T with 27 users: Mathematica
# 45 Rank: 45 with 25 users: AutoHotkey
========= elapsed: 1.8189 seconds =========</pre>
 
=={{header|Stata}}==
10,339

edits