ICFP 2002 sorted results. See this page for all the details about the contest.
They don't seem to provide a sorted list of entries, so I cross-referenced the info and made this table. I took the rankings from the results of round 4 combined. See the end of the page for the Lua script I used to generate the table. Hopefully it's correct; let me know if not.
DISCLAIMER: On the scoring page the organizers explicitly say they didn't try to generate a correct ordering for the whole field of entries, just the top couple. Which is probably why they don't provide this table. So take this with a huge grain of salt! Entertainment value only, etc.
| rank | entry # | team name | program name | language |
|---|---|---|---|---|
| 1 | 107 | TAPLAS | Rog-O-Matic III | Objective Caml |
| 2 | 161 | Radical Too | lessobliv | C, raw C |
| 3 | 193 | Berkeley State Machines Incorporated | BSM-2 | C |
| 4 | 290 | Ephibian Harbinger | Harbinger | Java |
| 5 | 94 | Nederwiet | Millennium Falcon | C++ |
| 6 | 209 | MIMteam | postman | Ocaml |
| 7 | 117 | Stephen Villee | player | C |
| 8 | 68 | tooTiredToBeClever | lateNightHack | Java |
| 9 | 246 | Tycon Mismatch | Zol | SML |
| 10 | 30 | Bernd Paysan | busy-bee | Forth |
| 11 | 65 | TomZ | TomZBot | Haskell with GHC extensions |
| 12 | 95 | TeamGHC | TeamGHC (3 day) | Haskell |
| 13 | 84 | Greed is good | Gekko | C++/C |
| 14 | 199 | Funktion im Kopf der Mensch | FeigAberBoes | ocaml |
| 15 | 207 | Frictionless Bananas | Skipperdee | Haskell, C++ |
| 16 | 16 | Simon Funk | Baseline | Vanilla C (with my personal toolbox) |
| 17 | 121 | Bloody Camls | Buddha | OCaml |
| 18 | 188 | Otaniemi Lisp User Team | Karhu | Common Lisp |
| 19 | 142 | Tapani Utriainen | Robo | C, pure C |
| 20 | 267 | mldonkey | runme | Objective-Caml |
| 21 | 205 | 5 Gorillas | barbobot | ocaml |
| 22 | 249 | Team Solecist | dib | O'Caml |
| 23 | 130 | Mike Lin | Edsger | ocaml |
| 24 | 269 | Erwin | Simpleton | Python |
| 25 | 185 | Marcel van Kervinck | kervinck | C |
| 26 | 192 | TeamBob | TeamBobProgram | C |
| 27 | 8 | TeamGHC | TeamGHC | Haskell |
| 28 | 98 | Nimbus | Nimbus | Java |
| 29 | 157 | One Happy Python Hacker | RoboSnake | Python |
| 30 | 138 | Cube | Bad Robot | C++ |
| 31 | 182 | Watt | watt | Common Lisp |
| 32 | 73 | Manic Street Preachers | Higher Kind | Haskell and C |
| 33 | 231 | Spam, Eggs, Sausage, and Spam | Throatwarbler Mangrove | Python |
| 34 | 259 | Ocaml's Razor | Nono | Ocaml (3.04) |
| 35 | 258 | DylanDownUnder | Baseless | Dylan |
| 36 | 78 | The four Caml Riders of the Apocalypse | Neanderthal | Objective Caml |
| 37 | 226 | Pining for the fjords | Sparky | VisualAge Smalltalk |
| 38 | 54 | The Sleepy Schemers | Tired Headless Chicken | Scheme |
| 39 | 172 | Hash-Haskell | Postman | Haskell |
| 40 | 135 | steffen@swb.de | just4fun | python |
| 41 | 145 | Excors | Serendipity | Perl |
| 42 | 165 | Penguins of Love | SharedMonkey | Python2.2 |
| 43 | 197 | Purple Monkey Dishwasher | WarTaxi | Java |
| 44 | 148 | WeetIkHet | Yngwie | Java |
| 45 | 260 | RunRobot | runrobotrun | C++ (with boost) |
| 46 | 139 | London.pm | Marvin | Perl |
| 47 | 111 | Nothern Gryphons | Automorthbil | Cobol 4ever! (hehe, no... it's C, which I bet you don't think is much better) |
| 48 | 177 | SunsRevenge | SunsRevenge | Java |
| 49 | 88 | Merry Mercurians | Dumbo | Mercury (with some C, see README) |
| 50 | 53 | YesLogic | Pacifist | Mercury |
| 51 | 113 | OneMeanBot | OneMeanSonOfABot | Java |
| 52 | 19 | A bored perl hacker | POT | Perl |
| 53 | 97 | arock | bigflood | C++ |
| 54 | 248 | Blue Avengers | erlbot | erlang |
| 55 | 61 | Terran Society for Computer Based Studies | Dominator | C++ |
| 56 | 191 | The Vicious Camlers | The Vicious Deliverator | ocaml 3.06 |
| 57 | 9 | Nederwiet | Millennium Falcon | C++ |
| 58 | 122 | Big Dudes | runme | c++ |
| 59 | 255 | Jeremy Day | Johanna | C |
| 60 | 159 | zigo | pathfinder | Haskell, C |
| 61 | 60 | Sleep Deprivation | C is for Cookie | C |
| 62 | 100 | otabi | JPackageBot | Java |
| 63 | 169 | I don't need no stinkin' team | George | Prolog |
| 64 | 35 | john60622 | ernie | Java |
| 65 | 170 | ExPGers | Blockhead | Java |
| 66 | 34 | pyloner | aaw (almost aimless wanderer) | pure python |
| 67 | 176 | Berkeley Rules, Pittsburgh Sucks | The Pacifist | Ocaml |
| 68 | 99 | MonadWranglers | Pathfinder | Haskell |
| 69 | 116 | No Idea | No Idea's Idea | Haskell (with GHC extensions) |
| 70 | 221 | Christian Szegedy | antznpathes | Ruby, C |
| 71 | 167 | joerg | 813 | Perl |
| 72 | 21 | Superficial Intelligence Labs | Deus Ex Machina (v2 - nonlightning) | Perl |
| 73 | 67 | The Lone Wolf | runme | C |
| 74 | 175 | The Doug Boat "AKA The Al-Gore-Rythym" | TIM-MAH! | Java |
| 75 | 163 | WRSomsky | SfExpress | perl |
| 76 | 194 | Squires | UPSBot | Java 1.4 |
| 77 | 227 | Six Angry Jews | Separatist Violence | Python |
| 78 | 208 | John Hazen | jsPerlBot | Perl |
| 79 | 56 | OaSys | OaSys (non-lightning round) | Python |
| 80 | 222 | Neil Drumm | stomt | Java |
| 81 | 115 | Camls 'R Us | Mostly Harmless | OCaml |
| 82 | 4 | Simon Funk | Baseline | Vanilla C (plus my personal toolbox) |
| 83 | 173 | J-Squared | ElaithBot | Java |
| 84 | 220 | Artem Dmytrenko | fast_bot_682 | C |
| 85 | 110 | Ryan Carey | ICFP02 | Java |
| 86 | 168 | Rugbe's Wreckers | Rugbe Package Delivery Bot | Java (1.4.0) |
| 87 | 162 | Gizzywump | Hi, Robot | Python |
| 88 | 201 | The silver hamers | Maxwell's deamon | Icon |
| 89 | 218 | Malcolm | cbot | C |
| 90 | 5 | OaSys | OaSys | Python |
| 91 | 225 | cwilper | notEvolution | java |
| 92 | 118 | Team Ball | Hal | Java |
| 93 | 278 | Smart | idiot | Java |
| 94 | 179 | Treebulb (members: Julian Grizzard) | runme | C |
| 95 | 43 | Dragan | Dragan | C++ |
| 96 | 39 | The SIGSEGV Team | Theo Killer | C |
| 97 | 57 | Ian Lance Taylor | Electronic Imbroglio | C++ |
| 98 | 195 | Een | StNikolaus | C++ |
| 99 | 235 | Dylanoid phenomenon | Dylanoid | Gwydion Dylan |
| 100 | 237 | The Patenaudes | BullHeaded | Java |
| 101 | 272 | MIT Condensed Matter Theory | Polite Man | C++ |
| 102 | 289 | The Monkey Juicers | Da Man | Java |
| 103 | 294 | Cyber-Otters | otterbot | ANSI-C |
| 104 | 228 | LAZZE-GETOBZ | King Ghidorah | C |
| 105 | 63 | uhmmmm | client | C |
| 106 | 101 | Team Eikkel | Perverse | C++ |
| 107 | 223 | Gromph | GooseBot | C++ |
| 108 | 277 | Studio Ghibli | Kiki | PLT Scheme |
| 109 | 7 | Superficial Intelligence Labs | Deus Ex Machina | Perl |
| 110 | 90 | Steve Trottier | aimless | Java |
| 111 | 251 | jpistole | Approximator 2000 | ocaml |
| 112 | 149 | Quokka | Perliminator | Perl |
| 113 | 196 | Barbapapa | Barbabot | Ruby |
| 114 | 37 | Team Xoltar | CrudeButEffective | Python 2.2 |
| 115 | 257 | Brown PLT Team | Brownian Motion | Rice PLT v202 |
| 116 | 81 | Caustic Disk | denizens | Java |
| 117 | 202 | magic insa | shyant | OCaml |
| 118 | 76 | Green Jello Mold | TestClient | PLT Scheme |
| 119 | 150 | Adirondack Pyrates | Gradient Slider | Python |
| 120 | 105 | Blue Alert | Pandemonium | |
| 121 | 156 | Caml Blues | oyna | ocaml |
| 122 | 74 | 4am | PDS - Python Delivery Service | Python 2.2 |
| 123 | 216 | Vinterst?vler | Diffusion Confusion | Ada |
| 124 | 276 | sk | sk | |
| 125 | 119 | PerlBot | PerlBot | Perl |
| 126 | 11 | Aqua Team Hunger Farce | Meatball | Python, requires python 2 |
| 127 | 295 | scott | bot | Pearl |
| 128 | 87 | Andrey Vikt. Stolyarov | Loosy Alligator | C++, InteLib Lisp |
| 129 | 266 | PPS | PPS | |
| 130 | 86 | NetDragons.com | FaladosQuickSilver | Delphi (Object Pascal), IDE Kylix |
| 131 | 141 | b3nd3r cr3w | b3nd3r | C++ |
| 132 | 241 | lspm (LeipzigStarPackageManagement) | lspm | Haskell GHC 5.04 |
| 133 | 14 | Team Xoltar | CrudeButEffective | Python 2.2 |
| 134 | 210 | Robot Mania | RobotController | Java |
| 135 | 261 | Better Than Nothing | Better Than Nothing | C++ |
| 136 | 291 | The Haskell Carrots | The Traveling Knapsack | Haskell |
| 137 | 42 | Embry | robot1.lisp | Common Lisp |
| 138 | 22 | Darklight | Drunk man | ocaml |
| 139 | 273 | TuBieWuJiXian | TuBieWuJiXian.tar.gz | Objective Caml |
| 140 | 206 | finnish power | robowars | C |
| 141 | 285 | datathief | moth | Ruby |
| 142 | 270 | Born Losers | Amherst | Scheme |
| 143 | 66 | ILM | BEOS | C++ |
| 144 | 293 | Alex & Nick | logger | C++ |
| 145 | 12 | NetDragons.com | FaladosQuickSilver | Delphi (Object Pascal) |
| 146 | 180 | Team Blur | DUIBot v1.0 | Perl |
| 147 | 10 | Ocaml's Razor | Nono | Ocaml (3.04) |
| 148 | 153 | Montraces | robot | java |
| 149 | 160 | Contest Crackers | The Great Indian Bull Dog | C |
| 150 | 178 | MLNewbie | divide'n'conquer (try at least) | OCaml 3 |
| 151 | 189 | Travis' All night code binge with little to show for it team | Mr. Congenitally Imbecilic | Java |
| 152 | 204 | Point No Point | Spazbot | perl |
| 153 | 217 | Dave Brondsema | Dave's Bot! | C++ |
| 154 | 250 | Radar Zombies of the Stratosphere | Pythonic Robot Adventure | Python 2.2 |
| 155 | 254 | Dogs | dogs | |
| 156 | 265 | Magic Peace Farm Laboratories | Snark-5 | Python |
| 157 | 271 | Flying Circus | Client.py | Python |
| 158 | 288 | DHARMATECHS | LAMBDA-THE-ULTIMATE-ROBOT | Scheme (MzScheme 202) |
| 159 | 292 | UsedJava?-ShameOnUs! | HRobot | Java |
Here's the Lua script used to generate this table. I originally wrote this in Perl, but Perl's reference syntax gives me fits and I was getting annoyed, so I redid it in Lua. I haven't done much Perl-like reports coding in Lua, so this is probably not idiomatic.
#!/usr/bin/lua40
function split(pattern, str)
local results = {}
local start_pos = 1
local next_tab = 0
while 1 do
next_tab = strfind(str, pattern, start_pos)
if next_tab == nil then break end
tinsert(results, strsub(str, start_pos, next_tab - 1))
start_pos = next_tab + 1
end
return results
end
local entries = {}
local in = openfile("icfp-entries.txt", "r")
if in == nil then ABORT("couldn't open entries") end
while 1 do
local line = read(in, "*l")
if line == nil then break end
local fields = split("\t", line)
if getn(fields) >= 4 then
-- insert the info into the entries table.
entries[tonumber(fields[1])] = {
entry_number = tonumber(fields[1]),
team_name = fields[2],
program_name = fields[3],
language = fields[4]
}
end
end
closefile(in)
-- Pull in results (they're in order of finish, first column is the entry number).
local results = {}
in = openfile("icfp-results.txt", "r")
if in == nil then ABORT("couldn't open results") end
while 1 do
local line = read(in, "*l")
if line == nil then break end
local fields = split(" ", line)
if getn(fields) >= 1 then
tinsert(results, tonumber(fields[1]))
end
end
closefile(in)
-- generate the list page sorted by finish
write([[<html><head><title>ICFP 2002 sorted results</title></head>
<body>
<p>ICFP 2002 sorted results. See <a href="http://icfpcontest.cse.ogi.edu/">this page</a> for all the
details about the contest.</p>
<p>They don't seem to provide a sorted list of entries, so I
cross-referenced the info and made this table. I took the rankings
from the results of round 4 combined. See the end of the page for the
Lua script I used to generate the table. Hopefully it's correct; let
me know if not.</p>
<p>DISCLAIMER: On the scoring page the organizers explicitly say they
didn't try to generate a correct ordering for the whole field of
entries, just the top couple. Which is probably why they don't
provide this table. So take this with a huge grain of salt!
Entertainment value only, etc.</p>
]])
write("<table><tr><th>rank</th><th>entry #</th><th>team name</th><th>program name</th><th>language</th></tr>\n")
for i = 1, getn(results) do
local info = entries[results[i]]
if info == nil then
write(format("<tr><td><b>%d</b></td><td>%d</td><td>*no info*</td></tr>\n", i, results[i]))
else
write(format("<tr><td><b>%d</b></td><td>%d</td><td>%s</td><td>%s</td><td>%s</td></tr>\n",
i, results[i], info.team_name, info.program_name, info.language))
end
end
write("</table>\n")
write([[<p>Here's the Lua script used to generate this table. I originally
wrote this in Perl, but Perl's reference syntax gives me fits and I
was getting annoyed, so I redid it in Lua. I haven't done much
Perl-like reports coding in Lua, so this is probably not
idiomatic.</p>
]])
-- show the script
write("<pre>\n")
in = openfile("make-icfp-table.lua", "r")
if in == nil then ABORT("couldn't open script source") end
while 1 do
local line = read(in, "*l")
if line == nil then break end
line = gsub(line, "&", "&");
line = gsub(line, "<", "<");
line = gsub(line, ">", ">");
write(line)
write("\n")
end
closefile(in)
write("</pre>\n")
-- show my name & email
write("<p>Thatcher Ulrich | <a href=\"mailto:tu@tulrich.com\">tu@tulrich.com</a></p>\n")
write("</table>")
write("</body></html>\n")
Thatcher Ulrich | tu@tulrich.com