Find a list of length N, with numbers from 1 to N, such that the sum of the number in even position minus the sum of numbers in odd position is N. Using clp():
len([], 0). len([X|Xs], N + 1):- len(Xs, N). odds_minus_evens([], 0). odds_minus_evens([I], I). odds_minus_evens([I, P|Rest], I - P + SumRest):- odds_minus_evens(Rest, SumRest). member(X, [X|Xs]). member(X, [Y|Ys]):- member(X, Ys). all_numbers(0, List). all_numbers(N, List):- N > 0, member(N, List), all_numbers(N - 1, List). my_list(N, L):- len(L, N), odds_minus_evens(L, N), all_numbers(N, L).