Усечение списка до указанной длины с помощью стандартных функций - Prolog
Формулировка задачи:
Здравствуйте! Требуется написать усечение списка до указанной длины, т.е. оставить первые N элементов, с помощью стандартных функций (append, remove, member и пр.). Без их использования все довольно просто:
Но с использованием append ничего не выходит:
Помогите, пожалуйста! Пользуюсь Gprolog'ом или SWI-prolog'ом.
Листинг программы
- cutlist(X,0,[]).
- cutlist([X|Y],K,[X|Y1]):-
- K1 is K - 1,
- cutlist(Y,K1,Y1).
Листинг программы
- cutlist1(X,0,[]).
- cutlist1([X|X1],N,[X|Y1]):-
- K1 is K - 1,
- append(X,Y1,Y),
- cutlist1(X1,K1,Y1).
Решение задачи: «Усечение списка до указанной длины с помощью стандартных функций»
textual
Листинг программы
- cutlist2(Zs, N, Xs) :-
- length(Xs, N),
- append(Xs, _Ys, Zs).
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д