Skip to content


(UPDATE: Frequently Asked Questions on the task description.)

(UPDATE 18:40 GMT: We’re having trouble with the weather. See the spec extension)

(UPDATE 16:45 GMT Saturday: We’ve found a way to make the maps easier to navigate. See the spec extension)

(UPDATE 21:45 GMT Saturday: We’ve found some strange growths underground. See the spec extension)

(UPDATE 12:00 GMT Sunday: It looks like there are more Lambdas underground than we first thought. See the spec extension)

This year’s task is to implement a Lambda Lifter. If you’re familiar with the implementation of functional programming languages, you probably know what this is. If not, this is a Lambda:


And this is a Lambda Lifter:


Of course, to successfully lift Lambdas, you need to get them into the Lambda Lift:

The reason we need a Lambda Lifter is that the recent increase in popularity of functional languages and the rise in multicore and parallel programming has led to a worldwide shortage of Lambdas, with current models predicting we’ll run out by October. Fortunately, we have discovered a plentiful supply in the Lambda mines beneath the Lomond Hills, not far from St Andrews in Scotland. We have surveyed the mines, and have a number of maps. Your job is to implement a mining robot which will find the Lambdas and Lift them to the surface, using the maps as a guide.

For more details, see the full specification. There are now also some extensions:

Note that we are still working on the surveying equipment, and we may find some unexpected things underground as the contest progresses. We will let you know, via this web site and via email (once you have registered) if we find anything.

We have some sample maps:

We also have a validator so that you can check whether your implementation of the robot behaves according to our specification. We make no guarantees about the availability or efficiency of this validator, however – please be kind to it!

If you need to contact us during the contest, you can do any of the following:

  • (Preferred) Send an email to icfpcontest at cs dot st-andrews dot ac dot uk. Note that this is a mailman mailing list, including the organisers and anyone else interested. Anyone may post, and you may subscribe here.
    Note that all messages are archived here – please check whether your question has already been answered before posting.

  • Ask @icfpcontest2012 on Twitter. You can also use the hash tag #icfpc, though asking directly will be more likely to get a speedy response.
  • Ask on the #icfp-contest IRC channel, on

At least one of the organisers should be available throughout the contest, though please be aware that we may be less responsive during UK night time!

  1. val permalink

    It is Friday 13th. Are you scare? 😉

  2. Thank you for this task. What could be the maximum size of the map? E.g. could it be larger than 500×500?

    • It could be… it would be best to try to cope with as large a map as you can, remembering that the VM is limited to 1Gb and so we’re likely only to provide maps that have a hope of fitting in that.

  3. Nika permalink

    Please, make a single archive with maps

  4. Joel Klein permalink

    You have some of the map icons on this page, and all of them are in the PDF. Could you put all the map icons on this page so we can make our own Dig Dug map visualizations?

  5. Joel Klein permalink

    Thank you!

  6. alex permalink

    It is unclear from the rules:
    If the robot moves into the cell with Earth, does that cell become Empty?

    • icfppc2012 permalink

      It’s actually pretty clear. The cell will be left empty when the robot leaves the square.

  7. John Miller permalink

    The spec is silent on the treatment of STDERR. May we use it to produce debugging output and have it ignored by the testing environment?

  8. Denis Yakunin permalink

    Another question.
    It is said that score decreases for every move. Is score decrease while the Robot Wait?

    • icfppc2012 permalink

      Yes, the score does decrease if you wait.

  9. Art permalink

    Scoring rules description seems to be incomplete. While playing with web validator I found the following facts:

    1. ‘A’ is assumed to implicitly added at the end of the given sequence. (This implies that each collected Lambda gains 50 (not 25) points if no ‘A’ issued explicitly.)
    2. Abort command costs nothing by itself. (For example program “A” gains 0 points, not -1.)

    • icfppc2012 permalink

      1. This is correct. You don’t get those points if you’re squashed or if you drown
      2. This is also correct. Abort is not counted as a move.

  10. I wanted to upload my submission. Gone thru the pain of creating a Google account. Now Google tells me I can’t share my submission. It says: “Sorry, you have exceeded your sharing quota.” So what?

    • I’ve just checked with a freshly created account. I got the same error as you initially but a few minutes later, it worked (from the drive menu rather than the documents menu). I think it’s just because the google account setup process goes through a few steps. Our testing didn’t show this up because we used existing accounts rather than new ones!

  11. Can my ./lifter file by an executable (chmoded +x) python file with “#!/usr/bin/python” first line?

  12. Will there be a way to check how the submission did – to see the score it achieved on test data or at least to ensure that it works correctly on server?..

    • When we run the tests we will post a scorecard. We will determine the winner by a series of knock out rounds.

  13. Vlad permalink

    Guys, will all maps be rectangular like 1-6 or it will be with ragged borders like 7 – 9?

    • The test maps that we use may be any that meet our specification. So not necessarily rectangular.

      • Vlad permalink

        I mean will maps be supplemented with spaces to rectangular form rows*cols ?

      • icfppc2012 permalink

        No, like the example maps, they could be any shape.

  14. How exactly can we upload the new version of submission? Do we have to use “Manage Revisions > Upload New Revision” ?…

  15. pbl64k permalink

    Is there a limit to the number of moves web-based validator accepts?

    • sam permalink

      Yes. It will ignore any moves after the first m*n, where m and n are the dimensions of the map.

  16. Slow Guy permalink

    Dudes, please wait!

Leave a Reply

Please log in using one of these methods to post your comment: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: