| var _curry3 = |
| /*#__PURE__*/ |
| require("./internal/_curry3"); // `Identity` is a functor that holds a single value, where `map` simply |
| // transforms the held value with the provided function. |
| |
| |
| var Identity = function (x) { |
| return { |
| value: x, |
| map: function (f) { |
| return Identity(f(x)); |
| } |
| }; |
| }; |
| /** |
| * Returns the result of "setting" the portion of the given data structure |
| * focused by the given lens to the result of applying the given function to |
| * the focused value. |
| * |
| * @func |
| * @memberOf R |
| * @since v0.16.0 |
| * @category Object |
| * @typedefn Lens s a = Functor f => (a -> f a) -> s -> f s |
| * @sig Lens s a -> (a -> a) -> s -> s |
| * @param {Lens} lens |
| * @param {*} v |
| * @param {*} x |
| * @return {*} |
| * @see R.prop, R.lensIndex, R.lensProp |
| * @example |
| * |
| * const headLens = R.lensIndex(0); |
| * |
| * R.over(headLens, R.toUpper, ['foo', 'bar', 'baz']); //=> ['FOO', 'bar', 'baz'] |
| */ |
| |
| |
| var over = |
| /*#__PURE__*/ |
| _curry3(function over(lens, f, x) { |
| // The value returned by the getter function is first transformed with `f`, |
| // then set as the value of an `Identity`. This is then mapped over with the |
| // setter function of the lens. |
| return lens(function (y) { |
| return Identity(f(y)); |
| })(x).value; |
| }); |
| |
| module.exports = over; |