ConvertUTF8 := proc( str ) local i, tempstring, uniindex; try tempstring := str; uniindex := [StringTools:-SearchAll("\u",str)]; if uniindex <> [] then for i in uniindex do tempstring := StringTools:-Substitute(tempstring, str[i..i+5], UTF8:-unicode(str[i+2..i+5])); end do: end if; return tempstring; catch: return str; end try; end proc: print_examples := proc(lst) local task, count, url, headers, item; for task in lst do count := 0: url := cat("http://www.rosettacode.org/mw/index.php?title=", StringTools:-Encode(StringTools:-SubstituteAll(task["title"], " ", "_"), 'percent'), "&action=raw"): headers := [StringTools:-SearchAll("=={{header|",URL:-Get(url))]: for item in headers do count++: end do: printf("%s has %d examples\n",ConvertUTF8(task["title"]), count); end do: end proc: x := JSON:-ParseFile("http://rosettacode.org/mw/api.php?action=query&list=categorymembers&cmtitle=Category:Programming_Tasks&cmlimit=20&format=json"): print_examples(x["query"]["categorymembers"]); while(assigned(x["continue"]["cmcontinue"])) do continue := x["continue"]["cmcontinue"]: more_tasks:= cat("http://rosettacode.org/mw/api.php?action=query&list=categorymembers&cmtitle=Category:Programming_Tasks&cmlimit=20&format=json", "&continue=", x["continue"]["continue"], "&cmcontinue=", x["continue"]["cmcontinue"]): x := JSON:-ParseFile(more_tasks): print_examples(x["query"]["categorymembers"]); end do: