Personal tools

Obfuscation/IOHCC 2004

From HaskellWiki

Jump to: navigation, search

aka Functional Swine, the opposite of FunctionalPearls

In the spirit of ....

bring us your poor, weary, downtrodden, and unreadable source code.


This contest is meant to be fun, short, and not terribly serious.

  • submission deadline: August 31st, 2004
  • judging deadline: September 15th, 2004 (expect results at that point)
  • send your code (and/or complaints/comments) to:

submission must have source and some sort of description file so that the jurors won't be totally mystified.


  • LICENSE: your code must an original work, all submitted programs are thereby put in the public domain. All explicitly copyrighted programs will be rejected. (see the IOCCC rules)
  • max source size: 5k
  • entry must include shell script or makefile to perform the build
  • build must not require human intervention
  • doing something interesting and/or useful is a plus
  • we particularly like games
  • limited abuse of the rules is acceptible if the specific abuses are documented, and the judges think it's cool
  • judges aren't allowed to enter (not this time)


  • latest public release versions of hugs, ghc, nhc, hbc, helium acceptable (any we missed?)
  • may use common Haskell tools such as hmake, happy etc.
  • program need not be portable across Haskell implementations
  • must be relatively portable across platforms (i.e. no Linux-specificisms)
  • use of ANSI/VTxxx codes which are not limited to a specific brand of terminal and work in a standard xterm are portable
  • FFI is discouraged, we want real Haskell source.

five person jury:

  • Bjorn Bringert (bringert)
  • Andrew Bromage (Pseudonym)
  • Shae Erisson (shapr)
  • Jeremy Shaw (stepcut)
  • Martin Sj�gren (Marvin--)

random notes, thoughts, and ideas:

Awards will depend on the specific entries, but may include:

  • best one-liner - less than 80 chars not counting imports?
  • best .signature sized - 4x80 or 4x76 or whatever
  • best game
  • best H98-only program
  • best exploit of a compiler bug
  • most useful program
  • most creative layout
  • best abuse of implementation-specific extensions
  • best abuse of the type system
  • best abuse of category theory
  • worst abuse of the rules

spirit, point, reason:

  • to seek out new lifeforms and new civilizations
  • to boldly go where no Haskell programmer has ever wanted to be!

Semi-seriously, though, obfuscated code shows neat and unusual ways of structuring a program, cool tricks, dark nooks and crannies you've never thought of, and is generally a good way to shake off all that software discipline and stomp around in the muddy world of spaghetti code for a quick vacation.