Spis treści

Union

Description

Finding the union of two lists

Source: The Art of Prolog

Download

Program source code: union.pl

Listing

/*
   union(Xs,Ys,Us) :- Us is the union of the elements in Xs and Ys. 
*/
 
union([X|Xs],Ys,Us) :- member(X,Ys), union(Xs,Ys,Us).
union([X|Xs],Ys,[X|Us]) :- nonmember(X,Ys), union(Xs,Ys,Us).
union([],Ys,Ys).
/*
   nonmember(X,Xs) :- X is not a member of the list Xs.
*/
     nonmember(X,[Y|Ys]) :- X \== Y, nonmember(X,Ys).
     nonmember(X,[]).
 
 
%  Program 13.1    Finding the union of two lists

Comments