%% lpi(=,[[a,b,c],[1,2,3]],Results). %% Results = [[a,1],[b,2],[c,3]] %% lpi(=,[[a,|,b],[1,2] %% lpi(=,[a,1],Result). %% Result = [[a,1]] lpi(=,[Variables,Values],Results) :- lpi2(=,Variables,Values,[],Results). lpi2(=,[],[],Results,Results). lpi2(=,[Variable|Variables],[Value|Values],Results1,Results2) :- append(Results1,[[Variable,Value]],Results3), lpi2(=,Variables,Values,Results3,Results2). lpi(=,[Variable,Value],Result1, Result2) :- %% make separate call with [] for Result1 append(Result1,[[Variable,Value]],Result2).