%% database( { sure(N:string), friend(A:string, B:string) } ). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% export willcome(P). %% willcome(P)<-sure(P). willcome(P)<-c_friends(P,K),K>=3. c_friends(P,mcount)<-willcome(F),friend(P,F). single(mcount, X, 1). multi(mcount, X, Old, New) <- New=Old+1. return(mcount, X, nil, 1). return(mcount, X, Old, New)<-Old~=nil, New=Old+1. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% export wllcome(P,C). %% wllcome(P,yes)<-sure(P). wllcome(P,kcount<(3,F)>)<-wllcome(F,yes),friend(P,F). single(kcount, (K,X), 1). multi(kcount, (K,X), Old, New) <- Old)<-wllcme(F),friend(P,F). single(zcount, (K,X), 1). multi(zcount, (K,X), Old, New) <- Old