Journal of Functional Programming is an Open Access journal and is the only journal devoted solely to the design, implementation, and application of functional programming languages, spanning the range from mathematical theory to industrial practice. Topics covered include functional languages and extensions, implementation techniques, reasoning and proof, program transformation and synthesis, type systems, type theory, language-based security, memory management, parallelism and applications. Special tracks are devoted to tools and applications, commercial uses and education; pearl-type papers are encouraged.
Scope of Journal of Functional Programming
Anything related to functional programming is of interest, including: foundations (semantics, abstract interpretation, lambda calculi, rewriting, logic, type theory, category theory); implementation (compilation, architectures, parallelism, garbage collection, I/O, debugging, profiling); linguistics (pure and impure language features, non-determinism, side effects, logical variables, relation to other programming paradigms, proofs about programs, program transformation, program synthesis, partial evaluation); applications (applications programs, practical experience, programming techniques, prototyping). Papers may describe original technical work, survey an area, or present a tutorial; and may be either short or long.
What sort of papers does Journal of Functional Programming publish?
Journal of Functional Programming publishes a variety of different sorts of paper:
Regular papers constitute the main diet. They are usually in the range 20-40 pages, but can be shorter or longer. Each paper is submitted to an Editor and is refereed. A paper may go through one or more rounds of refereeing. Included in the regular papers are ones describing the experience of applying functional programming to real problems, which is described in more detail below.
Tools and Applications covers the development of software tools using functional programming and how they may be applied.
Commercial Uses of Functional Programming includes papers explaining and describing the direct use of functional programming in industrial or commercial situations.
The Education track of Journal of Functional Programming solicits papers on innovations and experiences in functional programming education. Papers can range from describing courses and approaches, to discussing pithy examples (such as pearls), and can include tutorials. The focus should always be on pedagogic aspects, especially reporting on experiences and lessons, rather than dwelling primarily on technical aspects. Indeed, education track papers are not required to have any technical innovation at all. See also the Editorial on this track: Education Matters.
Tutorial Papers present a topic of interest to the Functional Programming community in an illuminating and accessible manner. While a tutorial paper need not make an original scientific contribution, like research papers do, it usually presents (a sequence of) ideas in a novel and insightful way. In contrast to other contributions, timing plays an important role for tutorials. An ideal tutorial explains and summarizes a series of papers on an emergent research topic before textbooks for graduate students appear and pre-empt it. Indeed, authors of tutorials may wish to think of tutorial papers as extended and refined graduate textbook proposals. Finally, an effective tutorial needs serious attending to writing, all the way from the top-level organization down to the low-level details. A well-organised tutorial introduces the research topic gradually, starting from knowledge that all first-year PhD students ought to have. It presents the ideas in a coherent manner and probably ends with a survey of how the presented ideas relate to recent results. At the same time, the writing should be so engaging that the reader will find it hard to put the paper down.
Functional Pearls are short (typically 4-10 pages), well-rounded papers describing some clever programming idea. Similarly Theoretical Pearls are short papers that deal with a specific theoretical issue of relevance to functional programming.
Book reviews, solicited by Journal of Functional Programming.
Special issues of Journal of Functional Programming have been a successful way of attracting a group of high-quality papers on a particular topic. We invite a Guest Editor or Editors to edit the issue, but one of the permanent Editors plays an "uncle" role. The Guest Editor writes and circulates an open Call for Papers, received submissions, and evaluates them with the help of referees. The Editors-in-Chief are open to proposals for Special Issues any time.
Journal of Functional Programming encourages authors of workshop and conference papers to submit enhanced versions of the same work to the journal. Typically, the version submitted to Journal of Functional Programming should contain additional discussion, examples, or proofs. Only if a workshop or conference paper is exceptionally well presented and complete is it suitable for journal publication without significant revision. If another publisher holds copyright on an earlier version of an article, the enhanced version must differ sufficiently so that the author can sign a license to publish with CUP.
Practice and experience papers
Research and papers on practice and experience sometimes receive less attention because they are perceived as possessing less academic content. So we want to remind potential authors that we have published a number of papers on this topic in the past, and have three dedicated categories: Education,Tools and Applications, and Commercial Uses of Functional Programming, which are described above. Authors are encouraged to submit papers in these categories, or on any topic related to the use of functional programming to solve real-world problems. Such papers don't have to make novel contributions to either functional programming or to the application area, but they do have to involve functional programming ideas in a central and critical way. An application may be of interest because of (rather than in spite of) being entirely straightforward, since others might hesitate to write a similar application in a functional language without evidence that it would be tractable.
Such papers should clearly summarise their contributions: - Is there a new technique -- or is the point that the application is straightforward, and no new technique is required? - Did it make a difference writing in a functional style -- or could the same application be written the same way in an imperative language? - What lessons were learned?Were there any reusable programming techniques? And so on. In general, the paper must give an account of the application area that would be regarded as well-informed, up to date, and accurate by an expert in that field.
These sorts of papers can be hard to get published in conferences, because they tend to be a little long, and because they may not report crisp new research results. Journal of Functional Programming is delighted to publish them, provided they meet the criteria above. So write on!
The Journal of Functional Programming encourages authors of workshop and conference papers to submit enhanced versions of the same work to the journal. Typically, the version submitted to Journal of Functional Programming should contain additional discussion, examples, or proofs. Only if a workshop or conference paper is exceptionally well presented and complete is it suitable for journal publication without significant revision. If another publisher holds copyright on an earlier version of an article, the enhanced version must differ sufficiently so that the author can sign a license to publish with Cambridge University Press.
Following acceptance of the paper, your final submission should include both the PDF for the paper, and a directory containing all the LaTeX source files, including any supporting style files, figures, etc.
You are also encouraged to supply supporting material for your paper which Journal of Functional Programming will make permanently accessible over the Web.
Certain article types (for example, Research Articles, Functional Pearls, Theoretical Columns, Education Matters, Commercial Uses Columns, Tool and Application Columns, Tutorial Papers, Review Articles ) may be eligible for APC waivers or discounts under one of the agreements Cambridge University Press has made to support open access.
We accept the following types of articles:
- Book Review**
- Commercial Uses Column*
- Education Matters*
- Functional Pearl*
- Research Article*
- Theoretical Column*
- Tools and Applications Column*
- Tutorial Paper*
* All or part of the publication costs for these article types may be covered by one of the agreements Cambridge University Press has made to support open access. For authors not covered by an agreement, and without APC funding, please see this journal's open access options for instructions on how to request an APC waiver.
** No APCs are required for these article types.