67 lines
2.1 KiB
JavaScript
67 lines
2.1 KiB
JavaScript
var _clone =
|
|
/*#__PURE__*/
|
|
require("./internal/_clone");
|
|
|
|
var _curry3 =
|
|
/*#__PURE__*/
|
|
require("./internal/_curry3");
|
|
|
|
var _isTransformer =
|
|
/*#__PURE__*/
|
|
require("./internal/_isTransformer");
|
|
|
|
var _reduce =
|
|
/*#__PURE__*/
|
|
require("./internal/_reduce");
|
|
|
|
var _stepCat =
|
|
/*#__PURE__*/
|
|
require("./internal/_stepCat");
|
|
/**
|
|
* Transforms the items of the list with the transducer and appends the
|
|
* transformed items to the accumulator using an appropriate iterator function
|
|
* based on the accumulator type.
|
|
*
|
|
* The accumulator can be an array, string, object or a transformer. Iterated
|
|
* items will be appended to arrays and concatenated to strings. Objects will
|
|
* be merged directly or 2-item arrays will be merged as key, value pairs.
|
|
*
|
|
* The accumulator can also be a transformer object that provides a 2-arity
|
|
* reducing iterator function, step, 0-arity initial value function, init, and
|
|
* 1-arity result extraction function result. The step function is used as the
|
|
* iterator function in reduce. The result function is used to convert the
|
|
* final accumulator into the return type and in most cases is R.identity. The
|
|
* init function is used to provide the initial accumulator.
|
|
*
|
|
* The iteration is performed with [`R.reduce`](#reduce) after initializing the
|
|
* transducer.
|
|
*
|
|
* @func
|
|
* @memberOf R
|
|
* @since v0.12.0
|
|
* @category List
|
|
* @sig a -> (b -> b) -> [c] -> a
|
|
* @param {*} acc The initial accumulator value.
|
|
* @param {Function} xf The transducer function. Receives a transformer and returns a transformer.
|
|
* @param {Array} list The list to iterate over.
|
|
* @return {*} The final, accumulated value.
|
|
* @see R.transduce
|
|
* @example
|
|
*
|
|
* const numbers = [1, 2, 3, 4];
|
|
* const transducer = R.compose(R.map(R.add(1)), R.take(2));
|
|
*
|
|
* R.into([], transducer, numbers); //=> [2, 3]
|
|
*
|
|
* const intoArray = R.into([]);
|
|
* intoArray(transducer, numbers); //=> [2, 3]
|
|
*/
|
|
|
|
|
|
var into =
|
|
/*#__PURE__*/
|
|
_curry3(function into(acc, xf, list) {
|
|
return _isTransformer(acc) ? _reduce(xf(acc), acc['@@transducer/init'](), list) : _reduce(xf(_stepCat(acc)), _clone(acc, [], [], false), list);
|
|
});
|
|
|
|
module.exports = into; |