Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- val needsMerge = members
- .mapIndexed { index, it -> Pair(resolved[index], it.statementSetId)}
- .filter { it.first != it.second }
- .distinct()
- .groupBy { it.first }
- .mapValues { it.value.map {it.second}.sorted() }
- .asIterable()
- .fold(emptyMap<StatementSetId,List<StatementSetId>>(), { acc, set ->
- val transitiveEqualTo = set.value.firstOrNull { acc.contains(it) }
- if(transitiveEqualTo != null){
- acc.plus(Pair(transitiveEqualTo, acc[transitiveEqualTo]!!.plus(set.value).distinct()))
- } else {
- acc.plus(Pair(set.key, set.value))
- }
- })
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement