ocamlopt -o sudoku sudoku.ml
(Go back to Marco Maggesi's home page.)
The code is in this file sudoku.ml.
You need O'Caml, of course. Any reasonably recent version shuld work:
ocamlopt -o sudoku sudoku.ml
Feed your puzzle into the standard input of the program. For instance, download this schema
$ cat schema 0 6 0 1 0 0 0 5 0 0 0 8 3 0 5 6 0 0 2 0 0 0 0 0 0 0 1 8 0 0 4 0 7 0 0 6 0 0 6 0 0 0 3 0 0 7 0 0 9 0 1 0 0 4 5 0 0 0 0 0 0 0 2 0 0 7 0 0 6 9 0 0 0 4 0 0 0 8 0 7 0
and use it as follows
$ ./sudoku < schema 9 6 3 1 7 4 2 5 8 1 7 8 3 2 5 6 4 9 2 5 4 6 8 9 7 3 1 8 2 1 4 3 7 5 9 6 4 9 6 8 5 2 3 1 7 7 3 5 9 6 1 8 2 4 5 8 9 7 1 3 4 6 2 3 1 7 2 4 6 9 8 5 6 4 2 5 9 8 1 7 3