Создать предикат, возвращающий по списку и двум числам M и N подсписок исходного списка, состоящий из элементов с номерами от M до N.
range(L, M, N, R) :- range(L, M, N, 1, R).
range([], _, _, _, []).
range(_, _, N, I, []) :-
I > N.
range([_|T], M, N, I, R) :-
I < M,
J is I + 1,
range(T, M, N, J, R).
range([H|T], M, N, I, [H|R]) :-
I >= M,
I =< N,
J is I + 1,
range(T, M, N, J, R).
|