Search code examples
dartfunctional-programmingdartz

Dartz - get left of Either


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?


Solution

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