Here a few things I made in the past :
- A very short quine (in OCaml, which is my favorite programming language)
- (stronger !) A program which prints the MD5 of its source code.
- A statistics service that's cool and free (no ad). Ha Ha, just joking. Don't use it, it's too crappy. And don't tell anybody I was involved in this.
- A small program which computes an approximate solution to the traveling salesman problem using simulated annealing, with interactive graphic representation ! (linux binary, requires X). If you really want the (messy) sources, ask me. They contains some other heuristics, including the classical minimal spanning tree method. There's also some kind of report in French, with a few fancy figures.
- How I tried to compute a diabolic 7x7 square using brute-force, prolog, and simulated annealing (to generate the prolog program !). Rest assured, it didn't work. Unfortunately, it's in French.... here. Sources and other stuff are here.
- I also have a little prolog sudoku solver.
- I once tried to write a C binding for ocaml to be able to play with SSE2 instructions with ocaml floats... here.
- Always wanted to have call/cc in ocaml ? I made a stupid interpreter just for you ! (but it's also a simple lex/yacc parser for a subset of caml)
- I used to waste some time writing a BF program (BF is a Turing-machine-like language) to compute the factorial : it's like that :
[->+<]+>[<[>[->+>+<<]>[-<+>]<<-]>>>[-<<<+>>>]<<-]<
- I even did it in lambda-calculus (using Church's integers) :
((λg.λh.(h ((g g) h)) λg.λh.(h ((g g) h))) λf.λn.(((λx.λy.λz.((x y) z) (λn.((n λz.λf.λx.x) λx.λy.x) n)) λf.λx.(f x)) ((λm.λn.λf.(m (n f)) n) (f (λk.(λs.(s λf.λx.x) ((k λs.λz.((z (λn.λf.λx.(f ((n f) x)) (λs.(s λx.λy.x) s))) (λs.(s λx.λy.x) s))) λz.((z λf.λx.x) λf.λx.x))) n)))))
Skilled people will recognize the Y fixed-point combinator at the beginning - Recently, I wrote a small transactional library for Ocaml. You can download it, but be aware that it *has* bugs.

