ICFPC (ICFP Programming Contest)
関数型プログラミングの国際会議 ICFP (International Conference on Functional Programming) の併設コンテストとして、1998年から毎年6〜7月頃に開催されている国際プログラミングコンテスト。結果はICFP会議の場で発表される。 #competitive-programming #functional-programming
名前が似ている ICPC とは別物で、性格もまったく違う。
競技形式
- 制限時間: 72時間。最初の24時間で締め切られる Lightning Division も併設される
- チーム人数: 無制限。参加費無料でインターネット経由で参加する
- 使用言語: 完全に自由
- 賞: 優勝チームには賞金ではなく、使用した言語が “the programming tool of choice for discriminating hackers” であると宣言される、いわゆる bragging rights(自慢する権利)が与えられる。言語・ツールの実力を示す場という側面が強い
問題の性格
ICPC のような整ったアルゴリズム問題の早解きではなく、毎年持ち回りの主催者が用意する一発ネタの大規模課題を72時間かけて攻略する総合戦。リバースエンジニアリング・最適化・謎解きなどの要素が混ざることが多い。
有名な回として、2006年のCMU主催回「The Cult of the Bound Variable」がある。仮想機械 UM-32 の仕様書とディスクイメージだけが渡され、VMを実装して起動すると架空のOS「UMIX」のログイン画面が現れ、その中に複数の課題と謎解きが仕込まれている、という凝った構成だった。365チーム・700人が少なくとも1つの課題を解いた。
ICPCとの対比
| [[acm-icpc|ICPC]] | ICFPC | |
|---|---|---|
| 主催母体 | ICPC Foundation(元ACM) | ICFP会議(ACM SIGPLAN) |
| 対象 | 大学生のみ(3人・PC1台) | 誰でも(人数無制限) |
| 時間 | 5時間 | 72時間 |
| 言語 | 指定言語のみ | 完全自由 |
| 性格 | アルゴリズム早解き | 大規模・謎解き的な総合戦 |
日本チームの活躍
秋葉拓哉氏らの Team Unagi が通算7回優勝している常勝チーム(2013・2015・2019・2024・2025年など)。2019年・2024年はRustを使用して優勝しており、"Rust is the programming language of choice for discriminating hackers" が宣言された。2025年は Sakana AI の進化的コード生成ツール ShinkaEvolve を人間の競技者と組み合わせて優勝したことが話題になった。
出典
- ICFP Programming Contest - Wikipedia
- ICFP Programming Contest (icfpconference.org)
- Team Unagi
- ShinkaEvolve in Action — Sakana AI
- The Cult of the Bound Variable: The 9th Annual ICFP Programming Contest (CMU)