; That page contains data on the posting frequency on Usenet ; group comp.lang.pascal. Here is the critical part of the ; source of the same page:
(println"The program shows frequency of Usenet posts.") (println"Kazimir Majorinc, Institute for Programming, 2009.") (println"Free for non-commercial use.")
(until(begin(print"\n\n\nNewsgroup [enter for exit]: ") (set'group(replace" "(read-line)"")) (empty?group)) ;; Following read-file retrieves the content of the page in ;; txt form. (let((f(read-file(format"http://groups.google.com/group/%s/about" group))) (data(list)) (max-posts/year0)); / is just part of the name (for(year1980(first (now))) (let(posts/year) (for(month112) ;; extracting information about number of posts in ;; given year and month: (when(find(format"%04d-%02d\">(.*)<"yearmonth)f0) (incposts/year(int(replace" "(copy $1)""))))) (whenposts/year (push(listyearposts/year)data-1) (set'max-posts/year(maxposts/yearmax-posts/year))))) ;; Display - if it doesn't look good with your font, ;; replace \219 with something else, for example # (unless(zero?max-posts/year) (println"\n ^ posts/year (max = "max-posts/year")\n |") (for(i201-1) (println" |" (applyappend (map(lambda(x) (if(>(x1) (*i(/max-posts/year20))) "\219\219 " " ")) data)))) (print" +"(dup"--+"(lengthdata))"-->\n ") (dolist(jdata) (print" "(slice(string(j0))2)))))) (exit)
;; You need installed Newlisp v10 to run this program.
;; The result will be as on the following picture:
;; Also, program will work for all "Google Groups," not only Usenet Groups.