Al-Qershi
asked on
8-queens solution in PROLOG explaination needed (I am a beginer!!)
generate(N, N, [N]).
generate(N, M, [N | Rest]) :-
N < M,
N1 is N + 1,
generate(N1, M, Rest).
solution(N, Ys):-
generate(1, N, RFvals),
Bot is 1 - N, Top is N - 1,
generate(Bot, Top, Uvals),
TwiceN is N + N,
generate(2, TwiceN, Vvals),
solution(Ys,RFvals, RFvals, Uvals, Vvals).
solution([], [], _, _, _).
solution([Y | Ylist], [X | Xsleft], Ys, Us, Vs) :-
insert(Y, Ysleft, Ys),
U is X - Y,
insert(U, Usleft, Us),
V is X + Y,
insert(V, Vsleft, Vs),
solution(Ylist, Xsleft, Ysleft, Usleft, Vsleft).
insert(X, L, [X | L]).
insert(X, [H | T], [H | XT]) :-
insert(X, T, XT).
Hi experts, I would like you to help me understanding the solution above written in PROLOG. Please provide me with a detailed explaination as soon as possible.
generate(N, M, [N | Rest]) :-
N < M,
N1 is N + 1,
generate(N1, M, Rest).
solution(N, Ys):-
generate(1, N, RFvals),
Bot is 1 - N, Top is N - 1,
generate(Bot, Top, Uvals),
TwiceN is N + N,
generate(2, TwiceN, Vvals),
solution(Ys,RFvals, RFvals, Uvals, Vvals).
solution([], [], _, _, _).
solution([Y | Ylist], [X | Xsleft], Ys, Us, Vs) :-
insert(Y, Ysleft, Ys),
U is X - Y,
insert(U, Usleft, Us),
V is X + Y,
insert(V, Vsleft, Vs),
solution(Ylist, Xsleft, Ysleft, Usleft, Vsleft).
insert(X, L, [X | L]).
insert(X, [H | T], [H | XT]) :-
insert(X, T, XT).
Hi experts, I would like you to help me understanding the solution above written in PROLOG. Please provide me with a detailed explaination as soon as possible.
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Why the C grade?