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?
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)