xyz( [ ], 0, [ ] ) .

xyz( [N|Rest], S, [N|RestResult] ) :-
S1 is S - N,
xyz(Rest, S1, RestResult ) .

xyz( [N|Rest], S, RestResult ) :-
xyz(Rest, S, RestResult ) .

?_xyz([1,2,3,4,5],5,Result)
