def csg_check(self, li, writer):
m = writer(self._m)
r = uncurry(writer(self._r))
old_value = None
mapped = map(m, li)
if self._flattened:
mapped = flatten(mapped)
for permuted in itertools.permutations(mapped):
if self._keyed:
reduced = []
for k, v in collect(permuted):
reduced.append( (k, reduce(r, v)) )
else:
reduced = reduce(r, permuted)
if isinstance(reduced, list):
return sorted(reduced)
if old_value and (reduced != old_value):
return False
else:
old_value = reduced
return True
评论列表
文章目录