blob: 3a6864adc82434fcb14ae95d5bc18d2f69e8354f [file] [log] [blame]
var _curry2 = /*#__PURE__*/require('./internal/_curry2');
var _dispatchable = /*#__PURE__*/require('./internal/_dispatchable');
var _dropLastWhile = /*#__PURE__*/require('./internal/_dropLastWhile');
var _xdropLastWhile = /*#__PURE__*/require('./internal/_xdropLastWhile');
/**
* Returns a new list excluding all the tailing elements of a given list which
* satisfy the supplied predicate function. It passes each value from the right
* to the supplied predicate function, skipping elements until the predicate
* function returns a `falsy` value. The predicate function is applied to one argument:
* *(value)*.
*
* Acts as a transducer if a transformer is given in list position.
*
* @func
* @memberOf R
* @since v0.16.0
* @category List
* @sig (a -> Boolean) -> [a] -> [a]
* @sig (a -> Boolean) -> String -> String
* @param {Function} predicate The function to be called on each element
* @param {Array} xs The collection to iterate over.
* @return {Array} A new array without any trailing elements that return `falsy` values from the `predicate`.
* @see R.takeLastWhile, R.addIndex, R.drop, R.dropWhile
* @example
*
* const lteThree = x => x <= 3;
*
* R.dropLastWhile(lteThree, [1, 2, 3, 4, 3, 2, 1]); //=> [1, 2, 3, 4]
*
* R.dropLastWhile(x => x !== 'd' , 'Ramda'); //=> 'Ramd'
*/
var dropLastWhile = /*#__PURE__*/_curry2( /*#__PURE__*/_dispatchable([], _xdropLastWhile, _dropLastWhile));
module.exports = dropLastWhile;