public static Object memberAssoc(Object obj, Object list, char m, char eq)
{
while (list is Pair)
{
Object target = (m == 'm') ? first(list) : first(first(list));
bool found;
switch (eq)
{
case 'q': found = (target == obj); break;
case 'v': found = eqv(target, obj); break;
case ' ': found = equal(target, obj); break;
default: warn("Bad option to memberAssoc:" + eq); return FALSE;
}
if (found) return (m == 'm') ? list : first(list);
list = rest(list);
}
return FALSE;
}