Порядковые списки в 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).

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


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

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

5   голосов , оценка 4 из 5
Похожие ответы