ICFP Programming Contest 2018



  • 2018-09-25: The ICFP Programming Contest 2018 report is available: slides and video
  • 2018-09-25: Congratulations to the ICFP Programming Contest 2018 winners!
    • Lightning Division Winner: Team jabber.ru
      OCaml is very suitable for rapid prototyping.
    • Judges’ Prize Winner: Team perpetuum mobile
      Team perpetuum mobile (using Scala) are an extremely cool bunch of hackers.
    • Full Contest 2nd Place Winner: Team manarimo
      C++, Python, Ruby, JavaScript, bash, SQL are fine tools for many applications.
    • Full Contest 1st Place Winner: Team Unagi
      Rust is the programming language of choice for discriminating hackers.
  • 2018-09-25: The Lightning Division Final Standings and Full Contest Final Standings are available.
  • 2018-07-23T21:00Z: Enjoy some bonus content!
    • Disappointed with only 40X speedups? Try setting an arbitrary number of initial seeds.
    • Want faster animations? Try disabling the (sometimes slow) groundedness checking.
  • 2018-07-23T16:00Z: The ICFP Programming Contest 2018 has ended. Thanks to all contestants and teams for their participation! Remember to complete your profile with complete team information and source code URL and SHA256 checksum.
  • 2018-07-23T15:00Z: One hour left in the Full Contest.
    • To be considered for prizes, within two hours of end of the contest, teams must update their profile with complete team information and submit the URL and SHA256 checksum of a single .zip archive with their source code, a README.txt file (brief directions for judges to build/run the solution; description of the solution approach; feedback about the contest; self-nomination for judges’ prize; etc.), and any other supporting materials.
  • 2018-07-23T10:00Z: The Full Contest Live Standings have been frozen (and, with time, will be updated with scores from all problems). The secondary submission system has been enabled.
  • 2018-07-22T21:00Z: Prepared a secondary submission system.
    • Details: Due to the high number of Lock timeout errors near the Lightning Division deadline, we think it prudent to offer a secondary submission system for use at the Full Contest deadline. The secondary submission system will be enabled shortly after the freezing of the Full Contest Live Standings. The secondary submission system takes exactly the same information (Team Private ID, Submission URL, Submission SHA256 Checksum), can be automated, and uses the same submission acknowledgments; however, it does not reject submissions with an unregistered Team Private ID (such submissions will be silently lost) and it does not reject repeated submissions within a 15 minute window. As a consequence, we will allow unlimited submissions via the secondary submission system (but don’t dare change the primary submission system to relax this rule). Teams may submit to either system or both systems. Note that there may nonetheless be high contention on the primary submission system, as well as the registration and profile systems, during this period. Teams that have not yet registered should do so well-before the Full Contest deadline. We will not accept submissions via e-mail, Twitter, IRC, etc.
  • 2018-07-22T03:40Z: Added a visual distinction between Low harmonics (darker floor) and High harmonics (lighter floor).
  • 2018-07-22T01:50Z: The Full Contest Live Standings are resumed and should be updating once every 15 minutes.
  • 2018-07-22T00:30Z: The Full Contest Live Standings are paused while investigating slow updates; submission acknowledgments are resumed and should be updating once every 15 minutes.
  • 2018-07-21T19:10Z: Initial submission acknowledgments and live standings for the Full Contest have been posted; should be updating once every 15 minutes.
  • 2018-07-21T16:00Z: The Full Contest Updated Task Description has been posted.
  • 2018-07-21T15:59Z: If you did not get a submission in after 15:45, then please continue to try to submit; we will accept for a few minutes after the deadline to accommodate the timeouts.
  • 2018-07-21T15:00Z: One hour left in the Lightning Division; remember, teams may only submit once every 15 minutes. Please, don’t abuse the submission system with repeated attempts within the 15 minute window; it makes it harder for other teams.
    • A Lock timeout: another process was holding the lock for too long. error means high contention.
  • 2018-07-21T10:00Z: The Lightning Division Live Standings have been frozen.
  • 2018-07-21T03:20Z: Submission acknowledgments and live standings should be updating once every 15 minutes.
  • 2018-07-20T20:20Z: Initial submission acknowledgments and live standings for the Lightning Division have been posted.
  • 2018-07-20T16:00Z: The ICFP Programming Contest 2018 has started! The Lightning Division Task Description has been posted.
  • 2018-07-18: There is an unofficial ICFPC Meeting Point app for finding teams and contestants by location, announced on Twitter.
  • 2018-07-13: Posted FAQ and Rules.

Contest Announcement

The ICFP Programming Contest 2018 is the 21st instance of the annual programming contest series sponsored by the ACM SIGPLAN International Conference on Functional Programming.

The contest will start at Friday 20 July 2018 16:00 UTC. The 24hr lightning division will end at Saturday 21 July 2018 16:00 UTC and the 72hr full contest will end at Monday 23 July 2018 16:00 UTC.

The task description will be published on this website when the contest starts. Details of the submission procedure will be announced along with the contest task.

This is an open contest. Anyone may participate except for the contest organizers and members of their research groups. No advance registration or entry fee is required. Contestants are free to organize themselves into teams of any size.

Any programming language(s) on any platform(s) may be used.

There will be cash prizes for the first and second place teams, the team winning the lightning division, and a discretionary judges’ prize. The winners will be announced at ICFP 2018 (St. Louis, Missouri, United States; Monday 24 – Wednesday 26 September 2018).

In addition, the organizers will declare during the conference that:

  • the first place team’s language is “the programming language of choice for discriminating hackers”,
  • the second place team’s language is “a fine tool for many applications”,
  • the winning lightning division team’s language is “very suitable for rapid prototyping”, and
  • the team winning the judges’ prize is “an extremely cool bunch of hackers”.

Contest Organizers

The ICFP Programming Contest 2018 is organized by Matthew Fluet and colleagues at the Rochester Institute of Technology.