Ho bisogno di confrontare due liste di regole del modulo var -> integer
sul fatto della mancata corrispondenza.
Per determinare se esistono regole uguali per lhs e diverse per rhs.Come confrontare due elenchi di regole?
Ad esempio:
{a-> 3, b-> 1, c-> 4} ~ ??? ~ {a-> 3, b-> 1, c-> 4} = true
{a-> 3, b-> 1, c-> 4} ~ ??? ~ {A-> 3, b-> 2, c-> 4} = false
{a-> 3, b-> 1, c-> 4} ~ ??? ~ {a-> 1, b-> 3, c-> 4} = falso
{a-> 3, b-> 1, c-> 4} ~ ??? ~ {c-> 4, d-> 8, e-> 9} = true
{a-> 3, b-> 1, c-> 4} ~ ??? ~ {D-> 8, e-> 9, f-> 7} = true
Nel mio caso sono già ordinati per LHS e tutti LHS sono unici se potesse contribuire a rendere come funzione semplice possibile.
UPD: dimentica una cosa! Le liste possono essere di lunghezza diversa. Ma sembra che tutte e tre le attuali risposte siano ancora valide.
Oltre alle dimensioni, questa soluzione è 3 volte più veloce sui miei dati rispetto agli altri due. – Nakilon
@Nakilon Se la velocità è un problema, avvolgere le regole su r.h.s. di '/ .' in' Dispatch' - questo dovrebbe velocizzare il codice, sia per la mia versione (s) che per quella di @ Heike. –