function reduceRight(array, memo, iteratee, callback) {
  var reversed = slice.call(array).reverse();
  reduce(reversed, memo, iteratee, callback);
}
Same as [`reduce`]{@link module:Collections.reduce}, only operates on `array` in reverse order.

@name reduceRight
@static
@memberOf module:Collections
@method
@see [async.reduce]{@link module:Collections.reduce}
@alias foldr
@category Collection
@param {Array} array - A collection to iterate over.
@param {*} memo - The initial state of the reduction.
@param {Function} iteratee - A function applied to each item in the
array to produce the next step in the reduction. The `iteratee` is passed a
`callback(err, reduction)` which accepts an optional error as its first
argument, and the state of the reduction as the second. If an error is
passed to the callback, the reduction is stopped and the main `callback` is
immediately called with the error. Invoked with (memo, item, callback).
@param {Function} [callback] - A callback which is called after all the
`iteratee` functions have finished. Result is the reduced value. Invoked with
(err, result).