Я пытаюсь найти совпадение для суммы первых элементов Y определенного списка, для Y в диапазоне 1..10 и для максимума суммы. Я бы хотел, чтобы первое совпадение было Res = 10, Y = 10, но оно просто дает ответы, начиная с Y = 1 и увеличивая до Y = 10. Что мне здесь не хватает?
get_max(Res,Y):-
Y in 1..10,
add_list([1,1,1,1,1,1,1,1,1,1],Y,0,Res),
labeling([max(Y)],[Y,Res]).
add_list(_,0,Res,Res).
add_list([H|Rest],C,Temp,Final):-
NewTemp #= H+Temp,
NewC #= C-1,
add_list(Rest,NewC,NewTemp,Final).
?- get_max(Res,Y).
Res = Y, Y = 1 ;
Res = Y, Y = 2 ;
Res = Y, Y = 3 ;
Res = Y, Y = 4 ;
Res = Y, Y = 5 ;
Res = Y, Y = 6 ;
Res = Y, Y = 7 ;
Res = Y, Y = 8 ;
Res = Y, Y = 9 ;
Res = Y, Y = 10.