import _curry2 from './internal/_curry2.js'; import _dispatchable from './internal/_dispatchable.js'; import _dropLastWhile from './internal/_dropLastWhile.js'; import _xdropLastWhile from './internal/_xdropLastWhile.js'; /** * 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 = _curry2(_dispatchable([], _xdropLastWhile, _dropLastWhile)); export default dropLastWhile;