Functional Programming Column

Philip Wadler, University of Glasgow

               wadler@dcs.glasgow.ac.uk
         http://www.dcs.glasgow.ac.uk/~wadler

Following a suggestion from our editor, here’s a review of some relevant web sites, useful or othewise.

• A Frequently Asked Questions list

http://www.cs.nott.ac.uk/Department/Staff/mpj/faq.html

Mark Jones maintains this excellent functional programming FAQ. It answers questions ranging from basic (‘Are there any books about functional programming?’) to not-so-basic (‘What is a monad?’). It includes links to sites describing the following languages: ASpecT, Caml, Clean, Erlang, FP, Gofer, Haskell, Hope, Hugs, Id, IFP, J, Miranda(TM), ML, NESL, OPAL, Oz, Scheme, and Sisal. It also has links to bibliographies, meetings, active research groups, and other resources.

• The functional programming newsgroup

news:comp.lang.functional

This group is unmoderated, and is a mixed bag. The best thing about it is its FAQ, cited above. Otherwise, much dross with a few gems. Discussion largely consists of novice questions, sometimes answered ineptly by other novices, sometimes answered superbly by experts. There is the occasional flamewar, and, rarely, a novel insight. Post here if you have a question not answered by the FAQ; otherwise, it may be better to give it a miss.

• Functional programming conference list

http://www.dcs.qmw.ac.uk/research/theory/department
/FP_conferences/conf.html

The Queen Mary and Westfield CS department run this list. They allow anyone to make an entry via a form, and as a result some entires are untimely or unrelated to the topic. The list of meetings in the FAQ, cited above, may be a better bet.

• The functional programming archive

http://www.lpac.ac.uk/SEL-HPC/Articles/FuncArchive.html

Jon Hill maintains this handy archive. Researchers can register articles, which are listed with full bibliographic information, keywords, and links to the paper proper. Papers are grouped by primary and secondary topics, so one can browse for related papers. Researchers can also register themselves: the list of home pages has 200 entries, including all the leading lights of the field.

• The Journal of Functional Programming

http://www.dcs.gla.ac.uk/jfp/

The JFP web site contains data on how to subscribe or submit, and a complete list of every paper published in JFP. The entries are currently being linked into the Hypertext Bibliography Project, see below. The JFP bibliography entries are incomplete as of this writing (no citations yet, and abstracts only for the last three years), but give it time.

• The Hypertext Bibliography Project

http://theory.lcs.mit.edu/~dmjones/hbp/

Originated by Albert Meyer and David Jones for Information and Computation, this remarkable database has expanded to include a number of titles. It has a scope far beyond mere functional programming, but indexed titles include the International Conference on Functional Programming and the Journal of Functional Programming. Full entries contain title and abstract of the paper, plus a list of all papers in the database that this one cites or (here’s the kicker) that cite this one. All papers and authors are cross-linked in true hyper-text fashion. Currently only a few titles contain complete entries, but as time passes this should grow into an indispensable reference.

• Real-world applications of functional programming

http://www.dcs.gla.ac.uk/fp/realworld/

This is a list of programs written primarily to get a task done, rather than just to experiment with functional languages. Some applications are incestuous (compilers for Haskell and SML), some are industrial wonders (Erlang is used to build phone switches), some are in expected domains (theorem provers and natural language processors), and others are refreshingly out in left field (the MC-SYM tool for molecular biologists, the Cherry chess processor, the Pittsburgh map and restaurant data base). Initiated by myself and Andy Gill, the list is now maintained by Jonathon Hogg. It’s main drawback is that it is woefully incomplete and short. Please add your contribution!