code: public <R> StreamEx<R> mapLastOrElse(Function<? super T, ? extends R> notLastMapper,
              Function<? super T, ? extends R> lastMapper) {
          return new StreamEx<>(new PairSpliterator.PSOfRef<>(lastMapper, notLastMapper, spliterator(), false), context);
      }
docs: Returns a stream where the last element is transformed using
  {@code lastMapper} function and other elements are transformed using
  {@code notLastMapper} function.
  
  <p>
  This is a <a href="package-summary.html#StreamOps">quasi-intermediate
  operation</a>.
  
  @param <R> The element type of the new stream element
  @param notLastMapper a <a
  href="package-summary.html#NonInterference">non-interfering </a>,
  <a href="package-summary.html#Statelessness">stateless</a>
  function to apply to all elements except the last one.
  @param lastMapper a <a
  href="package-summary.html#NonInterference">non-interfering </a>,
  <a href="package-summary.html#Statelessness">stateless</a>
  function to apply to the last element
  @return the new stream
  @since 0.6.0
  @see #mapFirst(Function)