Final Results

20 August 2019

The winners of the 2019 ICFP Programming Contest have been announced on Tuesday, August 20 (slides available) and are as follows:

Lightning Round

The winner of the Lightning Round is team All your lambda are belong to us.

We officially declare that C++ and Haskell are very suitable for rapid prototyping.

Judges’ Prize

The winners of the Judges’ Prize, for the most elegant use of the entire set of boosters, are team Sound! Type System.

We officially declare that Sound! Type System (using Rust, C++, Python, JavaScript, and Go) is an extremely cool bunch of hackers.

Full Contest

The prize for second place goes to team CowDay.

We officially declare that C++ is a fine tool for many applications.

The prize for first place goes to team Unagi.

We officially declare that Rust is the programming language of choice for discriminating hackers.

Final Top 15

name score score + unspent LAM
1 Unagi 3878674 3880465
2 CowDay 3377492 3383347
3 Pigimarl 3144576 3144849
4 Sound! TypeSystem 3024005 3024715
5 Frictionless Bananas 2994524 2994666
6 All your lambda are belong to us 2970136 2971468
7 1kg cheese 2942490 2943578
8 花脊山の家 2764962 2765413
9 Lambding Snakes vs. Coding Monkeys 2690443 2690584
10 Gon the Fox 2605416 2605535
11 Piggybank Software 2573260 2574414
12 Better than nothing 2469946 2470996
13 2 Ivans 2459365 2462039
14 1915342 2422887
15 negainoido 2357002 2360402

The complete ranking tables for the Lightning Round and Full Contest are also available.

Contest Winners Notified

18 July 2019

The winners of the contest prizes have now been notified. The awards, as well as the top 15 places for the lightning and the main rounds, will be publicly announced at the Programming Contest Report of ICFP 2019, taking place in Berlin, on Tuesday, August 20, at 17:45.

Partial Rankings

06 July 2019

The final standings for the lightning and the main rounds are now available. Teams with 0 points are not shown, and the top 15 teams in both rounds remain secret to keep some intrigue. We will get in touch with the winners soon.

Update (July 8th) – Due to an error, submissions received shortly before the end of the contest, but graded after the submission deadline had passed, were scored 0 points. Two teams were affected. The full contest rankings have been updated to reflect their score accurately. This did not affect other teams’ scores in any way. The ranking of the top 50 teams remains unchanged. The changes for the other teams can be seen in this diff.

Wrapping Up

24 June 2019

It is time to wrap up our adventure: the ICFP Programming Contest 2019 is now officially over!

We thank all teams for their hard work and for staying with us till the end: the last 72 hours were extremely exciting (and mostly sleepless) for us! We hope you enjoyed your experience of operating worker-wrappers, as well as minting lambda-coins and spending them wisely. Rest assured, the bit rotten code is now safely stored in perfectly insulated mines, all thanks to your heroic efforts.

Immediate Action Items

If you wish your team to be considered for a prize, make sure to update your profile with complete information and submit a single .zip-archive with your source code, a README file (brief directions for us 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. This should be done via this page no later than two hours after the end of the contest, by June 24 2019, 12:00 UTC.

The private submission histories of individual teams will be kept on our server for 24 hours after the end of the contest, and will be wiped out on June 25 2019, 10:00 UTC. If you wish to download your team’s history, you can do it by executing

wget -mkEpnp -e robots=off<private_id>/

Final Results

We will post further information regarding the final rankings in the coming weeks. Stay tuned!


Combining Multiple Fast Wheels and Drills

23 June 2019

As pointed out by Nikolay Amiantov, the initial task specification contained a mistake when describing the effect of combining multiple wheels/drills with regard to their duration. In short: it should have been a sum, not a maximum of active times. Please, refer to the corresponding Section 2.2.2 of the updated specification. Also check out the example below illustrating this effect. To see the difference between non-active/active wheels, remove the last Z in the series of moves in the solution file.

Hard Fork in Lambda-chain

22 June 2019

Due to the slower than we expected adoption of Lambda-chain for the worker-wrapper challenge, we have taken a decision to make a “hard fork” and delay the official launch of the main-net until June 23 2019, 00:00 UTC. At that moment, the lambda-coin mining will continue in the main-net mode starting from Block 3, following the rules of the specification.

Unfortunately, the already mined lambda-coins will not be interchangeable with those minted on the new main-net. We apologise to the brave early adopters, and list their team names here as a token of our appreciation:

  • Unagi
  • All your lambda are belong to us
  • Sound! TypeSystem
  • 1kg cheese

Cloning Specification Updated

22 June 2019

We have received several questions about synchronous collection and use of boosters by parallel worker-wrapper replicas. An updated specification specification is now uploaded. Please, check the new Appendix A for clarifications.

Cloning and Parallel Wrapping

22 June 2019

The sizes of the maps need wrapping grow larger, and our worker-wrapper could use some help. This is made possible in a new pack of maps featuring a new kind of booster and revealing the purpose of the mysterious points from the previous tasks. The additional specification is here.

Contest Announcement

15 May 2019

The ICFP Programming Contest 2019 is the 22nd instance of the annual programming contest series sponsored by the ACM SIGPLAN International Conference on Functional Programming.

The contest will start at Friday 21 June 2019 10:00am UTC. The 24hr lightning division will end at Saturday 22 June 2019 10:00am UTC and the 72hr full contest will end at Monday 24 June 2019 10:00am 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 organisers and members of their research groups. No advance registration or entry fee is required. Contestants are free to organise 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 during ICFP 2019, which will take place in Berlin, Germany; Sunday 18 - Friday 23 August 2019).

In addition, the organisers 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”.


ICFP Programming Contest 2019 is brought to you by Yale-NUS College and National University of Singapore. It is organised by Ilya Sergey and George Pîrlea.

The worker-wrapper art is by Lilia Anisimova.

Yale-NUS College                NUS School of Computing