3
var newRight;
if(either.isRight()) {
  newRight = either.getOrElse(() => throw UnimplementedError());
} else {
  return Left(either.fold((f) => f, (r) => throw UnimplementedError()))
}

How can I get left side of either and return it as in the example above? Any other, maybe cleaner solutions?

Chris
  • 839
  • 1
  • 12
  • 30

1 Answers1

3

You can use swap(). It swaps the Left and Right part of an Either

either.swap().getOrElse(() => throw UnimplementedError());

or you can use fold if you can reduce left and right to same type.

myEither.fold(fToApplyLeft, gToApplyRight)

Taha
  • 531
  • 4
  • 21
  • I cannot reduce left and right to the same type. For now I went for fold `return Left(either.fold( (f) => f, (r) => throw UnimplementedError()));`. I hoped to achieve cleaner solution, but swap seems to be similarly messy. Nevertheless, thank you for your answer. – Chris Sep 08 '21 at 10:30