Написать определение операций равенства, объединения, пересечения, разности множеств - Prolog

Узнай цену своей работы

Формулировка задачи:

Написать определение операций равенства, объединения, пересечения, разности множеств. Помогите, пожалуйста.

Решение задачи: «Написать определение операций равенства, объединения, пересечения, разности множеств»

textual
Листинг программы
domains
int=integer
intl=int*
 
predicates
memb(int,intl)
inters(intl,intl,intl)
union(intl,intl,intl)
diff(intl,intl,intl)
 
 
clauses
 
memb(_,[])    :- fail.
memb(X,[X|_]) :- !.
memb(X,[Y|T]) :- X<>Y, memb(X,T).
 
inters([],_,[]).
inters([X|T],W,[X|Z]) :- memb(X,W), inters(T,W,Z).
inters([X|T],W,Z)     :- not(memb(X,W)), inters(T,W,Z).
 
 
union([],X,X).
union([Z|T],W,[Z|R]) :- not(memb(Z,W)), union(T,W,R).
union([Z|T],W,R)     :- memb(Z,W), union(T,W,R).
 
diff([],_,[]).
diff([X|T],W,[X|R]) :- not(memb(X,W)), diff(T,W,R).
diff([X|T],W,R)     :- memb(X,W), diff(T,W,R).

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


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

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

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