RosettaCodeData/Task/N-queens-problem/Erlang/n-queens-problem-2.erl
2023-07-01 13:44:08 -04:00

14 lines
399 B
Erlang

%%%For 8X8 chessboard with N queens.
-module(queens).
-export([queens/1]).
queens(0) -> [[]];
queens(N) ->
[[Row | Columns] || Columns <- queens(N-1),
Row <- [1,2,3,4,5,6,7,8] -- Columns,
safe(Row, Columns, 1)].
safe(_Row, [], _N) -> true;
safe(Row, [Column|Columns], N) ->
(Row /= Column + N) andalso (Row /= Column - N) andalso
safe(Row, Columns, (N+1)).