Стандартная программа различия в списке пролога

Redmine может сделать часть из того, что Вы просите. Интеграция работает в одном направлении, Вы должны ссылочные проблемы в сообщениях о фиксации , и затем эти данные будут доступны в redmine.

данные тогда доступны в двух представлениях. Дисплей ошибки будет включать список подобранных фиксаций. Дисплей репозитория свяжется, соглашается на страницы дисплея ошибки.

Redmine сохраняет локальный (пустой) репозиторий для каждого проекта. Это может быть основным repo или удаленным зеркалом. На обновлениях redmine анализирует сообщения о фиксации и обновляет внутреннюю таблицу перекрестных ссылок change_set, проблемы.

, Если redmine репозиторий используется только в качестве зеркала, он должен будет быть обновлен. Обновления могут произойти через крон или через внешний рычаг. Мы используем , redmine плагин GitHub и GitHub постполучает рычаг для хранения redmine в синхронизации с основным репозиторием GitHub.

Это работает, но это все еще немного неуклюже.

8
задан S.L. Barth - Reinstate Monica 21 July 2012 в 17:36
поделиться

2 ответа

Ваше использование A1 - [X | A] неверно. Предикат равен используется только для арифметики. Кстати, SWI-Prolog имеет встроенный предикат вычитания:

1 ?- subtract([1,2,3,a,b],[2,a],R).
R = [1, 3, b].

2 ?- listing(subtract).
subtract([], _, []) :- !.
subtract([A|C], B, D) :-
        memberchk(A, B), !,
        subtract(C, B, D).
subtract([A|B], C, [A|D]) :-
        subtract(B, C, D).

true.

Это то, что вам нужно?

10
ответ дан 5 December 2019 в 10:04
поделиться

Использование find all решение становится очевидным:

difference(Xs,Ys,D) :- 
  findall(X,(member(X,Xs),not(member(X,Ys))),D).
2
ответ дан 5 December 2019 в 10:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: