2002 ICFP Programming Contest
Phil Bewig writes "The 2002 ICFP Programming Contest begins today. The programming task will be posted at 12:00 noon Pacific Time." Which should be... just about... now.
← Back to Stories (view on slashdot.org)
10 PRINT "I WIN!"
taken! (by Davidleeroth) Thanks Bingo Foo!
I object to this test, this is quite simply awful that they are willing to risk Robot lives in such a callous fashion. I insist that all Robots must be fitted with inflatable life rafts to enable them to surive on the water squares. Anything else would a terrible waste of Robot life and would be ("two would be"s in a sentence, building up to the nutter finish) the same as Hitler during WWII.
An Eye for an Eye will make the whole world blind - Gandhi
Shoving is the answer, please stand near the stairs
1. Enter the 2002 ICFP Programming Contest.
2. Submit the site to Slashdot after downloading/caching all the instructions and requirements.
3. Be the only person to actually have a copy of the directions, therefore, the only person to submit a solution at all, let alone a working one.
4. ??? (Presumably, win the contest)
5. Profit!
"Mod, mod, mod...and another troll bites the dust."
"I may be quite wrong." - Socrates
Coordinates on the board are pairs of integers, ranging from (1,1) to (width, height), where (1,1) is the southwest corner of the board.
What kind of programming challenge uses a one-based array?
Man, I've been practicing all year using FORTH. Rats!
Mad, mad props to the first team to enter a working submission written exclusively in PostScript.
Yes, people often do that. But what they often neglect to tell you, is that it depends upon the task at hand. Still, SML is a nice language, but I wouldn't use it for everything (neither would I use C++ for everything).
If you like functional programming, like static checking (there are no ways around SML's typesystem, you are really, really safe), like strictness (as opposed to lazy functional languages), and like to be able to do some imperative hacking for the last bit of performance, then SML may be for you. If you are into compilers, theorem-provers, computer algebra or anything similar, then SML is definitely for you.
For tasks that are very low-level (i.e. require lot's of bit-fidling), needs to run in small memory-space, needs access to lot's of C or C++ libraries, etc, C++ is definitely more suited.
though it has no/little support for variables
Yes, that's the whole point of functional programming. But SML allows you to declare ref-cells which behave just like variables in normal languages. The downside is that using them makes your code incredibly ugly (something most SML'ers think is good, because it encourages good functional programming style).
A good implementation of SML would run with more or less the same speed as C++, and could also run the same algorithms (since it allows you to use imperative constructs), but it would be better if you used functional algorithms except when you really need to tune for the last clock-cycles. Unfortunately, the "standard" implementation, smlnj, runs more like at half speed of g++. There is another dialect of ML, called Ocaml, which has much more impressive native-code compilers. It is also somewhat more geared towards other programming-styles then the functional one (i.e it supports object-oriented programming really well).
I just red the contest problems; It seems as though it can be easily done in C++ -- anyone have insight on this?
Yes, to avoid being blamed for being biased towards functional programming, the ICFP doesn't usually have problems that are much better suited for functional languages. And there has certainly been contestants using C++ before. The main reason C++ may not fare too well in this contest, is probably because (1) usually the biggest C++ gurus are busy doing other things, while the biggest Ocaml, SML, Haskell, etc, gurus are competing, and (2) Functional languages are often more suitable for rapid prototyping than C++, and development speed is certainly an important ingredient in this competition. But it is definitely not impossible that either C++ or Perl comes out a winner some year.
I bet UPS is secretely sponsoring this competition so it can replace drivers with robots. The competing robots are FedEx drivers, so UPS robots can push the FedEx drivers into fatal squares. Perfect!
From the FAQ:
Q1: Will a test server be available?
A: Yes, stay tuned...
How are the Java folks supposed to write anything more than a "Hello World" program with so few resources?
the ICFP doesn't usually have problems that are much better suited for functional languages.
That is definitely not true. The tasks are specifically chosen to highlight the unique strengths of functional programming languages, especially compared to imperative languages like C++. This robot problem is a heuristic optimization problem whose solution would require analyzing large trees of possible moves. To do this in C++, you would need to write lots of code that many functional programming languages provide for free. Don't forget Philip Greenspun's Tenth Rule of Programming: "any sufficiently complicated C or Fortran program contains an ad hoc informally-specified bug-ridden slow implementation of half of Common Lisp."
cpeterso