Создание списка поочередным вытаскиваем элементов из двух списков - Prolog

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

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

Даны два списка А, В. Составить третий список С, элементами которого являются элементы А, В поочередно: сначала берем первый элемент А, затем – первый элемент В, затем – второй элемент А, второй элемент В и.т.д. Я написал, но программа зацикливается, возможно надо чуть чуть подправить мой код для выхода из цикла... Если у кого есть еще какие-нибудь варианты пишите)
Листинг программы
  1. %Добавление элемента в конец списка
  2. add(E,[],[E]).
  3. add(E,[H|T],[H|T1]):-add(E,T,T1).
  4. %процедура создания списка C вытаскивая элементы по одному из A и B
  5. s([],_,[]).
  6. s(_,[],[]).
  7. s([X|A],[Y|B],L):-add(X,L,L1),add(Y,L1,L2),s(A,B,L2),!.

Решение задачи: «Создание списка поочередным вытаскиваем элементов из двух списков»

textual
Листинг программы
  1. domains
  2. int=integer
  3. intl=int*
  4.  
  5. predicates
  6. zip(intl,intl,intl)
  7.  
  8. clauses
  9. zip([],X,X).
  10. zip(X,[],X).
  11. zip([H1|T1],[H2|T2],[H1,H2|T]) :- zip(T1,T2,T), !.

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


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

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

15   голосов , оценка 3.933 из 5

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

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

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