Standard ML of New Jersey, Version 110.0.3, January 30, 1998 [CM; autoload enabled] - = [opening nqueens-test.sml] [opening nqueens.sml] signature QUEENS = sig type loc = int * int val solve : int -> loc list option val solve_all : int -> loc list list end structure Queens : QUEENS val print_board = fn : int -> (int * int) list -> unit val print_solution = fn : (int * int) list option -> unit val print_all_solutions = fn : (int * int) list list -> unit val it = () : unit Queens.solve: 1 Q Queens.solve: 2 There is no solution. Queens.solve: 3 There is no solution. Queens.solve: 4 . Q . . . . . Q Q . . . . . Q . Queens.solve: 5 Q . . . . . . Q . . . . . . Q . Q . . . . . . Q . Queens.solve: 6 . Q . . . . . . . Q . . . . . . . Q Q . . . . . . . Q . . . . . . . Q . Queens.solve: 7 Q . . . . . . . . Q . . . . . . . . Q . . . . . . . . Q . Q . . . . . . . . Q . . . . . . . . Q . Queens.solve_all: 4 Solution #1 . Q . . . . . Q Q . . . . . Q . Solution #2 . . Q . Q . . . . . . Q . Q . . Queens.solve_all: 5 Solution #1 Q . . . . . . Q . . . . . . Q . Q . . . . . . Q . Solution #2 Q . . . . . . . Q . . Q . . . . . . . Q . . Q . . Solution #3 . Q . . . . . . Q . Q . . . . . . Q . . . . . . Q Solution #4 . Q . . . . . . . Q . . Q . . Q . . . . . . . Q . Solution #5 . . Q . . Q . . . . . . . Q . . Q . . . . . . . Q Solution #6 . . Q . . . . . . Q . Q . . . . . . Q . Q . . . . Solution #7 . . . Q . Q . . . . . . Q . . . . . . Q . Q . . . Solution #8 . . . Q . . Q . . . . . . . Q . . Q . . Q . . . . Solution #9 . . . . Q . Q . . . . . . Q . Q . . . . . . Q . . Solution #10 . . . . Q . . Q . . Q . . . . . . . Q . . Q . . . val it = () : unit val it = () : unit