Rosetta Code/Rank languages by number of users: Difference between revisions
Rosetta Code/Rank languages by number of users (view source)
Revision as of 14:13, 23 December 2017
, 6 years ago→{{header|Perl 6}}: Style tweaks, minor enhancements, update list
m (→{{header|zkl}}: removed dead code) |
Thundergnat (talk | contribs) m (→{{header|Perl 6}}: Style tweaks, minor enhancements, update list) |
||
Line 33:
<lang perl6>use HTTP::UserAgent;
use URI::Escape;
use JSON::Fast;
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(
:generator<categorymembers>,
: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>, :
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>
{{out}}
<pre>========= Generated: 2017-12-
# 1 Rank: 1 with 373 users: C
# 2 Rank: 2 with
# 3 Rank: 3 with
# 4 Rank: 4 with
# 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
# 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.
=={{header|Stata}}==
|