1% Copied from https://swish.swi-prolog.org/example/clpfd_queens.pl 2% Author: Markus Triska 3 4top :- n_queens(200,_), fail. 5top. 6 7:- use_module(library(clpfd)). 8 9n_queens(N, Qs) :- 10 length(Qs, N), 11 Qs ins 1..N, 12 safe_queens(Qs). 13 14safe_queens([]). 15safe_queens([Q|Qs]) :- 16 safe_queens(Qs, Q, 1), 17 safe_queens(Qs). 18 19safe_queens([], _, _). 20safe_queens([Q|Qs], Q0, D0) :- 21 Q0 #\= Q, 22 abs(Q0 - Q) #\= D0, 23 D1 #= D0 + 1, 24 safe_queens(Qs, Q0, D1). 25