Call for Papers

Important dates

Submissions due:Friday, February 27 2015, 23:59 (UTC-11)
Author response:Tuesday, 21 April, 2015 – Thursday, 23 April, 2015
Notification:Friday, 1 May, 2015
Final copy due:Friday, 12 June, 2015
Early registration:Monday, 3 August, 2015
Conference:Monday, 31 August - Wednesday, 2 September 2015


ICFP 2015 seeks original papers on the art and science of functional programming. Submissions are invited on all topics from principles to practice, from foundations to features, and from abstraction to application. The scope includes all languages that encourage functional programming, including both purely applicative and imperative languages, as well as languages with objects, concurrency, or parallelism. Topics of interest include (but are not limited to):

  • Language Design: concurrency, parallelism, and distribution; modules; components and composition; metaprogramming; type systems; interoperability; domain-specific languages; and relations to imperative, object-oriented, or logic programming.
  • Implementation: abstract machines; virtual machines; interpretation; compilation; compile-time and run-time optimization; garbage collection and memory management; multi-threading; exploiting parallel hardware; interfaces to foreign functions, services, components, or low-level machine resources.
  • Software-Development Techniques: algorithms and data structures; design patterns; specification; verification; validation; proof assistants; debugging; testing; tracing; profiling.
  • Foundations: formal semantics; lambda calculus; rewriting; type theory; monads; continuations; control; state; effects; program verification; dependent types.
  • Analysis and Transformation: control-flow; data-flow; abstract interpretation; partial evaluation; program calculation.
  • Applications: symbolic computing; formal-methods tools; artificial intelligence; systems programming; distributed-systems and web programming; hardware design; databases; XML processing; scientific and numerical computing; graphical user interfaces; multimedia and 3D graphics programming; scripting; system administration; security.
  • Education: teaching introductory programming; parallel programming; mathematical proof; algebra.
  • Functional Pearls: elegant, instructive, and fun essays on functional programming.
  • Experience Reports: short papers that provide evidence that functional programming really works or describe obstacles that have kept it from working.

If you are concerned about the appropriateness of some topic, do not hesitate to contact the program chair.

Abbreviated instructions for authors

  • By Friday, February 27 2015, 23:59 (UTC-11), submit a full paper of at most 12 pages (6 pages for an Experience Report), in standard ACM conference format, including bibliography, figures, and appendices.

The deadlines will be strictly enforced and papers exceeding the page limits will be summarily rejected.

  • Authors have the option to attach supplementary material to a submission, on the understanding that reviewers may choose not to look at it.
  • Each submission must adhere to SIGPLAN's republication policy, as explained on the web at
  • Authors of resubmitted (but previously rejected) papers have the option to attach an annotated copy of the reviews of their previous submission(s), explaining how they have addressed these previous reviews in the present submission. If a reviewer identifies him/herself as a reviewer of this previous submission and wishes to see how his/her comments have been addressed, the program chair will communicate to this reviewer the annotated copy of his/her previous review. Otherwise, no reviewer will read the annotated copies of the previous reviews.

Overall, a submission will be evaluated according to its relevance, correctness, significance, originality, and clarity. It should explain its contributions in both general and technical terms, clearly identifying what has been accomplished, explaining why it is significant, and comparing it with previous work. The technical content should be accessible to a broad audience. Functional Pearls and Experience Reports are separate categories of papers that need not report original research results and must be marked as such at the time of submission. Detailed guidelines on both categories are given below.

Presentations will be videotaped and released online if the presenter consents. The proceedings will be freely available for download from the ACM Digital Library from one week before the start of the conference until two weeks after the conference.

Formatting: Submissions must be in PDF format printable in black and white on US Letter sized paper and interpretable by Ghostscript. Papers must adhere to the standard ACM conference format: two columns, nine-point font on a ten-point baseline, with columns 20pc (3.33in) wide and 54pc (9in) tall, with a column gutter of 2pc (0.33in). A suitable document template for LaTeX is available at

Submission: Submissions will be accepted at

Improved versions of a paper may be submitted at any point before the submission deadline using the same web interface.

Author response: Authors will have a 72-hour period, starting at 0:00 UTC-11 on Tuesday, 21 April, 2015, to read reviews and respond to them.

ACM Author-Izer is a unique service that enables ACM authors to generate and post links on either their home page or institutional repository for visitors to download the definitive version of their articles from the ACM Digital Library at no charge. Downloads through Author-Izer links are captured in official ACM statistics, improving the accuracy of usage and impact measurements. Consistently linking the definitive version of ACM article should reduce user confusion over article versioning. After your article has been published and assigned to your ACM Author Profile page, please visit to learn how to create your links for fee downloads from the ACM DL.

Publication date: The official publication date of accepted papers is the date the proceedings are made available in the ACM Digital Library. This date may be up to two weeks prior to the first day of the conference. The official publication date affects the deadline for any patent filings related to published work.

Special categories of papers

In addition to research papers, ICFP solicits two kinds of papers that do not require original research contributions: Functional Pearls, which are full papers, and Experience Reports, which are limited to six pages. Authors submitting such papers may wish to consider the following advice.

Functional Pearls

A Functional Pearl is an elegant essay about something related to functional programming. Examples include, but are not limited to:

  • a new and thought-provoking way of looking at an old idea
  • an instructive example of program calculation or proof
  • a nifty presentation of an old or new data structure
  • an interesting application of functional programming techniques
  • a novel use or exposition of functional programming in the classroom

While pearls often demonstrate an idea through the development of a short program, there is no requirement or expectation that they do so. Thus, they encompass the notions of theoretical and educational pearls.

Functional Pearls are valued as highly and judged as rigorously as ordinary papers, but using somewhat different criteria. In particular, a pearl is not required to report original research, but, it should be concise, instructive, and entertaining. Your pearl is likely to be rejected if your readers get bored, if the material gets too complicated, if too much specialized knowledge is needed, or if the writing is inelegant. The key to writing a good pearl is polishing.

A submission you wish to have treated as a pearl must be marked as such on the submission web page, and should contain the words ``Functional Pearl'' somewhere in its title or subtitle. These steps will alert reviewers to use the appropriate evaluation criteria. Pearls will be combined with ordinary papers, however, for the purpose of computing the conference's acceptance rate.

Experience Reports

The purpose of an Experience Report is to help create a body of published, refereed, citable evidence that functional programming really works --- or to describe what obstacles prevent it from working.

Possible topics for an Experience Report include, but are not limited to:

  • insights gained from real-world projects using functional programming
  • comparison of functional programming with conventional programming in the context of an industrial project or a university curriculum
  • project-management, business, or legal issues encountered when using functional programming in a real-world project
  • curricular issues encountered when using functional programming in education
  • real-world constraints that created special challenges for an implementation of a functional language or for functional programming in general

An Experience Report is distinguished from a normal ICFP paper by its title, by its length, and by the criteria used to evaluate it.

  • Both in the proceedings and in any citations, the title of each accepted Experience Report must begin with the words ``Experience Report'' followed by a colon. The acceptance rate for Experience Reports will be computed and reported separately from the rate for ordinary papers.
  • An Experience Report is at most six pages long. Each accepted Experience Report will be presented at the conference, but depending on the number of Experience Reports and regular papers accepted, authors of Experience reports may be asked to give shorter talks.
  • Because the purpose of Experience Reports is to enable our community to accumulate a body of evidence about the efficacy of functional programming, an acceptable Experience Report need not add to the body of knowledge of the functional-programming community by presenting novel results or conclusions. It is sufficient if the Report states a clear thesis and provides supporting evidence. The thesis must be relevant to ICFP, but it need not be novel.

The program committee will accept or reject Experience Reports based on whether they judge the evidence to be convincing. Anecdotal evidence will be acceptable provided it is well argued and the author explains what efforts were made to gather as much evidence as possible. Typically, more convincing evidence is obtained from papers which show how functional programming was used than from papers which only say that functional programming was used. The most convincing evidence often includes comparisons of situations before and after the introduction or discontinuation of functional programming. Evidence drawn from a single person's experience may be sufficient, but more weight will be given to evidence drawn from the experience of groups of people.

An Experience Report should be short and to the point: make a claim about how well functional programming worked on your project and why, and produce evidence to substantiate your claim. If functional programming worked for you in the same ways it has worked for others, you need only to summarize the results---the main part of your paper should discuss how well it worked and in what context. Most readers will not want to know all the details of your project and its implementation, but please characterize your project and its context well enough so that readers can judge to what degree your experience is relevant to their own projects. Be especially careful to highlight any unusual aspects of your project. Also keep in mind that specifics about your project are more valuable than generalities about functional programming; for example, it is more valuable to say that your team delivered its software a month ahead of schedule than it is to say that functional programming made your team more productive.

If your paper not only describes experience but also presents new technical results, or if your experience refutes cherished beliefs of the functional-programming community, you may be better off submitting it as a full paper, which will be judged by the usual criteria of novelty, originality, and relevance. If you are unsure in which category to submit, the program chair will be happy to help you decide.


General Chair:Kathleen FisherTufts University (USA)
Program Chair:John ReppyUniversity of Chicago (USA)
Program Committee:
Amal AhmedNortheastern University (USA)
Jean-Philippe BernardyChalmers University of Technology (Sweden)
Matthias BlumeGoogle (USA)
William ByrdUniversity of Utah (USA)
Andy GillUniversity of Kansas (USA)
Neal GlewGoogle (USA)
Fritz HengleinUniversity of Copenhagen (Denmark)
Gabriele KellerUniversity of New South Wales and NICTA (Australia)
Andrew KennedyMicrosoft Research Cambridge (UK)
Neelakantan KrishnaswamiBirmingham University (UK)
Daan LeijenMicrosoft Research Redmond (USA)
Keiko NakataFireEye Dresden (Germany)
Mike RaineyINRIA Rocquencourt (France)
Andreas RossbergGoogle (Germany)
Manuel SerranoINRIA Sophia Antipolis (France)
Simon ThompsonUniversity of Kent (UK)
David Van HornUniversity of Maryland (USA)
Stephanie WeirichUniversity of Pennsylvania (USA)