University of Oxford Logo University of OxfordDepartment of Computer Science - Home

Functional Pearls

In Summer 2009, I took over from Richard Bird as editor of the Functional Pearls column in Journal of Functional Programming. (I'm also a general editor of the journal, so may deal with ordinary papers too.) I'm keen for submissions; do get in touch if you'd like to discuss a potential paper.

What is a Functional Pearl?

Richard Bird gave an invited talk at ICFP 2006 in Portland on How to Write a Functional Pearl, and I heartily recommend that pearl authors and reviewers look at his slides.

Bird recalls Jon Bentley's Programming Pearls column in CACM, about which Bentley wrote: "Just as natural pearls grow from grains of sand that have irritated oysters, these programming pearls have grown from real problems that have irritated programmers. The programs are fun, and they teach important programming techniques and fundamental design principles." Those guidelines apply too to functional pearls.

Typical functional pearls consist of:

Bird characterizes them as "polished, elegant, instructive, entertaining". They are not just shorter versions of standard research papers; they are not judged by the same criteria, and should not have the same structure. In particular, they need not have the typical academic paraphernalia of abstract, introduction, conclusion, related work, and thorough referencing. Think more along the lines of short stories—6 to 10 pages, brisk, engaging, accessible, surprising.

Nevertheless, pearls are still subject to peer review. I will continue to give Bird's advice to reviewers, instructing them to stop reading when:

Many people have found that writing in this format is fun, and I look forward to receiving burnished, lustrous submissions!