Порядковые списки в Prolog
Формулировка задачи:
Здравствуйте! Не могли бы помочь с реализацией стандартных предикатов порядкового списка (список типа [e(a,1),e(b,2),e(c,3),e(d,4)] ).
При реализации append нужно делать пересчет номеров у добавленного списка, т.е.:
[e(a,1),e(b,2),e(c,3),e(d,4)] и e(x,3) = [e(a,1),e(b,2),e(c,3),e(d,4),e(x,5)]
Никак не могу подобрать нужный предикат. Спасибо.
Использую Strawberry Prolog.
Решение задачи: «Порядковые списки в Prolog»
textual
Листинг программы
plus([e(X,N)|T],[e(X,N1)|T1],Y):- N1 is N+Y, plus(T,T1,Y). append_ordlist(L1,L2,L3):- length(Y,L1),plus(L2,L2Y,Y),append(L1,L2Y,L3). ?-append_ordlist([e(z,1),e(k,2)],[e(a,1), e(b,2), e(c,3), e(d,4)],L),write(L).
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д