У меня есть первый seq, например:
val s: Seq[Double] = List.fill(6)(0.0)
и подпоследовательности индексов s:
val subInd: Seq[Int] = List(2, 4, 5)
Теперь, что я хочу сделать, это обновить s на позициях 2, 4 и 5 другим Seq, который имеет длину subInd:
val t: Seq[Double] = List(5.0, 6.0, 7.0)
такой, что:
val updateBySeq(s, subInd, t): List[Double] = List(0.0, 0.0, 5.0, 0.0, 6.0, 7.0)
Я искал на этом сайте и нашел Обновите несколько значений в последовательности , где второй ответ приближается к функциональности, которую я хочу иметь.
Однако, разница в том, что предоставленная функция обновит s по индексам, содержащимся в subInd на один значение. Я, с другой стороны, хотел бы, чтобы они соответствовали множеству уникальных значений в третьей последовательности.
Я пробовал разные вещи, такие как использование рекурсии и ListBuffers вместо списков для постепенного обновления элементов из s, но либо они оставили s без изменений, либо я получил ошибку, потому что нарушил какое-то ограничение неизменности.