Предикат нахождения множества - пересечения трех множеств - Prolog

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

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

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

Решение задачи: «Предикат нахождения множества - пересечения трех множеств»

textual
Листинг программы
implement main
    open core
 
class predicates
    member: (integer,integer*) nondeterm.
clauses
    member(_,[]) :- fail.
    member(H,[H|_]).
    member(H,[_|T]) :- member(H,T).
 
class predicates
    intersect: (integer*, integer*, integer*)  nondeterm (i,i,o).
clauses
    intersect([],_,[]).
    intersect(_,[],[]).
    intersect([H|T1],T2,[H|T3]) :- intersect(T1,T2,T3),member(H,T2).
    intersect([H|T1],T2,T3) :- intersect(T1,T2,T3), not(member(H,T2)).
 
 
class predicates
    inters3: (integer*, integer*, integer*,integer*)  nondeterm (i,i,i,o).
clauses
    inters3(A,B,C,R) :- intersect(A,B,AB), intersect(C,AB,R).
 
clauses
    run():-
        console::init(),
        inters3([1,2,3,4],[3,4,5,6],[3,4,7,9],R).
 
end implement main
 
goal
    mainExe::run(main::run).

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

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