Dato due elenchi di variabili, qual è il modo più compatto e canonico in ISO Prolog per determinare l'unione di entrambi? Cioè, vogliamo una definizione per la (meta-logico) predicatiUnione di due serie variabili
varset_union(VarSet1, VarSet2, Union)
e per una lista di liste
varset_union(VarSets, Union)
dove Union
è un elenco di variabili uniche di un dato VarSet
s.
Ecco uno overview of the built-ins in ISO/IEC 13211-1: 1995 compreso Cor.2: 2012.
noti che la definizione di 'setof/3' produrrà un elenco di variabili nell'attuazione ordine dipendente - che significa ordine essenzialmente casuale - che' term_variables/2' ha un ordine ben definito . – false
E in termini di efficienza la soluzione 'setof/3' è molto peggio [almeno in SWI-Prolog]. –
'setof/3' usa' term_variables/2' per determinare le variabili da elaborare. E questo è solo il primo passo ... – false