ICFP (International Conference on Functional Programming) is an annual programming language conference. It is sponsored by the Association for Computing Machinery (ACM) under the aegis of the ACM Special Interest Group on Programming Languages (SIGPLAN), in association with Working Group 2.8 of the International Federation of Information Processing (IFIP). ICFP combined two former biennial conferences: Functional Programming and Computer Architecture (FPCA) and Lisp and Functional Programming (LFP)

ICFP provides a forum for researchers and developers to hear about the latest work on the design, implementations, principles, and uses of functional programming. The conference covers the entire spectrum of work, from practice to theory, including its peripheries.

This page is designed to be a permanent home for information about, or relevant to, ICFP. As well as information about the conference itself, it contains pointers to journals, other conferences, language implementations, research groups, and so on, that may be of interest. Please email suggestions for improvement to David Van Horn.

Scope

ICFP 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, 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 or concurrency. Particular topics of interest include:

  • Language Design: type systems; concurrency and distribution; modules; components and composition; metaprogramming; relations to object-oriented or logic programming; interoperability
  • Implementation: abstract machines; compilation; compile-time and run-time optimization; 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
  • Transformation and Analysis: abstract interpretation; partial evaluation; program transformation; program calculation; program proof
  • Applications and Domain-Specific Languages: 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 programming; scripting; system administration; security; education
  • Functional Pearls: elegant, instructive, and fun essays on functional programming

The conference also solicits Experience Reports, which are short papers that provide evidence that functional programming really works or describe obstacles that have kept it from working in a particular application.