Создание списка поочередным вытаскиваем элементов из двух списков - Prolog
Формулировка задачи:
Даны два списка А, В. Составить третий список С, элементами которого являются элементы А, В поочередно: сначала берем первый элемент А, затем – первый элемент В, затем – второй элемент А, второй элемент В и.т.д.
Я написал, но программа зацикливается, возможно надо чуть чуть подправить мой код для выхода из цикла...
Если у кого есть еще какие-нибудь варианты пишите)
Листинг программы
- %Добавление элемента в конец списка
- add(E,[],[E]).
- add(E,[H|T],[H|T1]):-add(E,T,T1).
- %процедура создания списка C вытаскивая элементы по одному из A и B
- s([],_,[]).
- s(_,[],[]).
- s([X|A],[Y|B],L):-add(X,L,L1),add(Y,L1,L2),s(A,B,L2),!.
Решение задачи: «Создание списка поочередным вытаскиваем элементов из двух списков»
textual
Листинг программы
- domains
- int=integer
- intl=int*
- predicates
- zip(intl,intl,intl)
- clauses
- zip([],X,X).
- zip(X,[],X).
- zip([H1|T1],[H2|T2],[H1,H2|T]) :- zip(T1,T2,T), !.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д