Как сравнить два списка правил?

Мне нужно сравнить два Списка правил формы var -> integer по факту несоответствия .
Чтобы определить, существуют ли какие-либо правила, одинаковые по lhs и разные по rhs .

Например:

{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} = false
{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

В моем случае они уже отсортированы по lhs , и все lhs уникальны, если это может помочь сделать как можно более простую функцию.

UPD: забыл одно! Списки могут быть разной длины. Но похоже, что все три текущих ответа по-прежнему в силе.

9
задан Nakilon 11 October 2011 в 14:51
поделиться