Усечение списка до указанной длины с помощью стандартных функций - Prolog

Узнай цену своей работы

Формулировка задачи:

Здравствуйте! Требуется написать усечение списка до указанной длины, т.е. оставить первые N элементов, с помощью стандартных функций (append, remove, member и пр.). Без их использования все довольно просто:
Листинг программы
  1. cutlist(X,0,[]).
  2. cutlist([X|Y],K,[X|Y1]):-
  3. K1 is K - 1,
  4. cutlist(Y,K1,Y1).
Но с использованием append ничего не выходит:
Листинг программы
  1. cutlist1(X,0,[]).
  2. cutlist1([X|X1],N,[X|Y1]):-
  3. K1 is K - 1,
  4. append(X,Y1,Y),
  5. cutlist1(X1,K1,Y1).
Помогите, пожалуйста! Пользуюсь Gprolog'ом или SWI-prolog'ом.

Решение задачи: «Усечение списка до указанной длины с помощью стандартных функций»

textual
Листинг программы
  1. cutlist2(Zs, N, Xs) :-
  2.     length(Xs, N),
  3.     append(Xs, _Ys, Zs).

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 3.333 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы