Файл struct.pro
/* Пример списка из неоднородных элементов */
domains
test = symbol*
llist = l(list); s(symbol); i(integer); c(char); t(string); e(test)
list = llist*
predicates
append(list, list, list)
goal
makewindow(1, 7, 7, "answer", 15, 0, 8, 80),
/* Объединяем списки с одинаковыми элементами */
append([s(строка1),l([s(строка2),s(строка3)])],[s(строка4), s(строка5)],Ans),
write("Список 1: ", Ans), nl, nl,
/* Объединяем списки с различными элементами */
append([l([s("строка1"),s("строка2")]),s(строка3)],[c('c'),i(5)],
Ans2),
write("Список 2: ", Ans2), nl.
clauses
/* Соединение двух списков */
append([], L, L).
append([X|L1], L2, [X|L3]) :- append(L1, L2, L3).
Данный пример рассматривает использование в Прологе списков из неоднородных элементов (структур). При выполнении, в окне на экране печатаются результаты (списки) объединения списков с похожими и различными элементами.
|