intersectionWhen<T> function
同上(后续优化)
Implementation
List<T> intersectionWhen<T>(Iterable<Iterable<T>> list, bool Function(T, T) compare) {
bool setHasFun(Iterable<T> ts, T va) {
for (var v2 in ts) {
if (compare.call(va, v2)) {
return true;
}
}
return false;
}
List<T> rl = [];
for (var l in list) {
for (var lv in l) {
bool has = true;
for (var ls in list) {
if (!setHasFun(ls, lv)) {
has = false;
break;
}
}
if (has) {
rl.add(lv);
}
}
}
return rl;
}