Это продолжение моего предыдущего вопроса .
Предположим, у меня сейчас такая структура данных:
case class C()
case class B(cs: Seq[C])
case class A(bs: Seq[B])
Как бы вынаписать функцию A => Seq[(A, Option[B], Option[C])]
?
Функция должна работать следующим образом:
A(Nil) // Seq((Some(A()), None, None))
A(Seq(B(Nil))) // Seq((Some(A()), Some(B()), None))
A(Seq(B(Seq(C())))) // Seq((Some(A()), Some(B()), Some(C()))
Будет ли полезен монадный преобразователь в этом случае?