//	File	:  /adm/simul_efun/unique_mapping.c
//	Creator	:  Buddha@TMI-2   (01/31/93)
//
//	Returns a mapping containing
//
 
mapping unique_mapping(mixed *arr, string func, string var) {
mapping tmp;
mixed res;
int i;
 seteuid(0);
if(!arr || !pointerp(arr))  return 0;
for (i=0, tmp = ([]); i<sizeof(arr);i++) {
if (!objectp(arr[i])) continue; /* ignore things that aren't objects. */
res = (mixed)call_other(arr[i], func, var);
if (!tmp[res]) tmp[res] = ({ arr[i] });
else tmp[res] += ({ arr[i] });
}
 
return tmp;
}