Мне, вероятно, не хватает чего-то, что прямо в документации, но я не могу этого толковать. Я учил себя Scala в основном методом проб и ошибок.
Для функции f: A => C
, что такое идиоматический способ выполнения следующих преобразований?
Either[A, B] -> Either[C, B]
Either[B, A] -> Either[B, C]
(Если у меня есть две такие функции и вы хотите преобразовать обе стороны, могу ли я сделать все сразу или мне нужно применять идиому дважды последовательно?)
Option[A] -> Option[C]
(У меня такое ощущение, что это как-то использовать for (...) yield
, я, вероятно, просто захлопываю его и буду чувствовать себя глупо, когда увижу ответ)
А что такое "проекция" Either
, во всяком случае?