31 lines
1.4 KiB
Text
31 lines
1.4 KiB
Text
count_sizes := proc(arr_name,arr_pop,i,lst)
|
|
local index := i;
|
|
local language;
|
|
for language in lst do
|
|
language := language[1]:
|
|
arr_name(index) := txt["query"]["pages"][language]["title"][10..]:
|
|
if(assigned(txt["query"]["pages"][language]["categoryinfo"]["size"])) then
|
|
arr_pop(index) := txt["query"]["pages"][language]["categoryinfo"]["size"]:
|
|
else:
|
|
arr_pop(index) := 0:
|
|
end if:
|
|
index++:
|
|
end do:
|
|
return index:
|
|
end proc:
|
|
|
|
txt := JSON:-ParseFile("http://rosettacode.org/mw/api.php?action=query&generator=categorymembers&gcmtitle=Category:Programming%20Languages&gcmlimit=350&prop=categoryinfo&format=json"):
|
|
arr_name := Array():
|
|
arr_pop := Array():
|
|
i := count_sizes(arr_name, arr_pop, 1, [indices(txt["query"]["pages"])]):
|
|
while (assigned(txt["continue"]["gcmcontinue"])) do
|
|
continue := txt["continue"]["gcmcontinue"]:
|
|
txt := JSON:-ParseFile(cat("http://rosettacode.org/mw/api.php?action=query&generator=categorymembers&gcmtitle=Category:Programming%20Languages&gcmlimit=350&prop=categoryinfo&format=json", "&continue=", txt["continue"]["continue"], "&gcmcontinue=", txt["continue"]["gcmcontinue"])):
|
|
i:=count_sizes(arr_name,arr_pop,i,[indices(txt["query"]["pages"])]):
|
|
end do:
|
|
arr_name:= arr_name[sort(arr_pop,output=permutation)]:
|
|
arr_pop := sort(arr_pop, output=sorted):
|
|
i := i-1:
|
|
for x from i to 1 by -1 do
|
|
printf("rank %d %d examples %s\n", i-x+1, arr_pop[x], arr_name[x]):
|
|
end do:
|