import { curry, addIndex, filter, pipe, modulo, identical, nthArg, __, } from 'ramda'; /** * When given a number n and an array, returns an array containing every nth element. * * @func skipTake * @memberOf RA * @category List * @since {@link https://char0n.github.io/ramda-adjunct/2.26.0|v2.26.0} * @sig Number -> [a] -> [a] * @param {number} the nth element to extract * @param {Array} value the input array * @return {Array} An array containing every nth element * @example * * RA.skipTake(2, [1,2,3,4]) //=> [1, 3] * RA.skipTake(3, R.range(0, 20)); //=> [0, 3, 6, 9, 12, 15, 18] */ const skipTake = curry((n, list) => addIndex(filter)(pipe(nthArg(1), modulo(__, n), identical(0)))(list) ); export default skipTake;