Каков наилучший способ найти и заменить элемент в неизменяемом наборе в Scala? - PullRequest
0 голосов
/ 16 марта 2020

У меня есть некоторый неизменный набор наборов. Каждый набор-элемент представляет собой набор Ints, эти Ints являются уникальными. Например, у меня есть Set (Set (1,2,3), Set (4,5,6), Set (7)). Мне нужно найти внутренний набор, содержащий 3, и заменить этот набор на обновленный набор (1,2,3,10), чтобы получить набор (набор (1,2,3,10), набор (4,5, 6), набор (7)).

Я не хочу создавать какой-то большой блок кода с рекурсиями, и мне интересно, если у меня есть возможность сделать это с помощью комбинаторов, карт, функций (не обязательно, но с использованием высокоуровневых абстракций Scala язык)

1 Ответ

2 голосов
/ 16 марта 2020

Что-то вроде:

val outerSet = Set(Set(1,2,3),Set(4,5,6),Set(7))
outerSet.map { innerSet =>
  if (innerSet.contains(3)) innerSet + 10
  else innerSet
}

?

...