# Random stuff

Here a few things I made in the past.

• A very short quine (in OCaml, which used to be my favorite programming language)

• (stronger !) A program which prints the MD5 of its own source code.

• A small program which computes an approximate solution to the traveling salesman problem using simulated annealing, with interactive graphic representation ! sources and companion report (in french).

• Always wanted to have call/cc in ocaml ? I made a naïve interpreter just for you ! (but it's also a simple lex/yacc parser for a subset of caml)

• I wasted 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 --- Skilled people will recognize the Y fixed-point combinator at the begining) : ((λ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)))))