Comparing version 3.0.0-alpha.13 to 3.0.0-alpha.14
@@ -12,3 +12,3 @@ /** | ||
/** | ||
* Less strict version of [`fold`](#fold). | ||
* Less strict version of [`match`](#match). | ||
* | ||
@@ -18,5 +18,5 @@ * @category destructors | ||
*/ | ||
export declare const foldW: <A, B>(onFalse: Lazy<A>, onTrue: Lazy<B>) => (value: boolean) => A | B | ||
export declare const matchW: <A, B>(onFalse: Lazy<A>, onTrue: Lazy<B>) => (value: boolean) => A | B | ||
/** | ||
* Defines the fold over a boolean value. | ||
* Defines the match over a boolean value. | ||
* Takes two thunks `onTrue`, `onFalse` and a `boolean` value. | ||
@@ -28,3 +28,3 @@ * If `value` is `false`, `onFalse()` is returned, otherwise `onTrue()`. | ||
* import { pipe } from 'fp-ts/function' | ||
* import { fold } from 'fp-ts/boolean' | ||
* import { match } from 'fp-ts/boolean' | ||
* | ||
@@ -34,3 +34,3 @@ * assert.deepStrictEqual( | ||
* some(true), | ||
* map(fold(() => 'false', () => 'true')) | ||
* map(match(() => 'false', () => 'true')) | ||
* ), | ||
@@ -43,3 +43,3 @@ * some('true') | ||
*/ | ||
export declare const fold: <A>(onFalse: Lazy<A>, onTrue: Lazy<A>) => (value: boolean) => A | ||
export declare const match: <A>(onFalse: Lazy<A>, onTrue: Lazy<A>) => (value: boolean) => A | ||
/** | ||
@@ -46,0 +46,0 @@ * @category instances |
@@ -6,3 +6,3 @@ import * as E from '../Eq'; | ||
/** | ||
* Less strict version of [`fold`](#fold). | ||
* Less strict version of [`match`](#match). | ||
* | ||
@@ -12,5 +12,5 @@ * @category destructors | ||
*/ | ||
export const foldW = (onFalse, onTrue) => (value) => value ? onTrue() : onFalse(); | ||
export const matchW = (onFalse, onTrue) => (value) => value ? onTrue() : onFalse(); | ||
/** | ||
* Defines the fold over a boolean value. | ||
* Defines the match over a boolean value. | ||
* Takes two thunks `onTrue`, `onFalse` and a `boolean` value. | ||
@@ -22,3 +22,3 @@ * If `value` is `false`, `onFalse()` is returned, otherwise `onTrue()`. | ||
* import { pipe } from 'fp-ts/function' | ||
* import { fold } from 'fp-ts/boolean' | ||
* import { match } from 'fp-ts/boolean' | ||
* | ||
@@ -28,3 +28,3 @@ * assert.deepStrictEqual( | ||
* some(true), | ||
* map(fold(() => 'false', () => 'true')) | ||
* map(match(() => 'false', () => 'true')) | ||
* ), | ||
@@ -37,3 +37,3 @@ * some('true') | ||
*/ | ||
export const fold = foldW; | ||
export const match = matchW; | ||
// ------------------------------------------------------------------------------------- | ||
@@ -40,0 +40,0 @@ // instances |
@@ -22,3 +22,3 @@ "use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.Show = exports.Ord = exports.MonoidAny = exports.MonoidAll = exports.SemigroupAny = exports.SemigroupAll = exports.BooleanAlgebra = exports.Eq = exports.fold = exports.foldW = void 0; | ||
exports.Show = exports.Ord = exports.MonoidAny = exports.MonoidAll = exports.SemigroupAny = exports.SemigroupAll = exports.BooleanAlgebra = exports.Eq = exports.match = exports.matchW = void 0; | ||
var E = __importStar(require("../Eq")); | ||
@@ -29,3 +29,3 @@ // ------------------------------------------------------------------------------------- | ||
/** | ||
* Less strict version of [`fold`](#fold). | ||
* Less strict version of [`match`](#match). | ||
* | ||
@@ -35,8 +35,8 @@ * @category destructors | ||
*/ | ||
var foldW = function (onFalse, onTrue) { return function (value) { | ||
var matchW = function (onFalse, onTrue) { return function (value) { | ||
return value ? onTrue() : onFalse(); | ||
}; }; | ||
exports.foldW = foldW; | ||
exports.matchW = matchW; | ||
/** | ||
* Defines the fold over a boolean value. | ||
* Defines the match over a boolean value. | ||
* Takes two thunks `onTrue`, `onFalse` and a `boolean` value. | ||
@@ -48,3 +48,3 @@ * If `value` is `false`, `onFalse()` is returned, otherwise `onTrue()`. | ||
* import { pipe } from 'fp-ts/function' | ||
* import { fold } from 'fp-ts/boolean' | ||
* import { match } from 'fp-ts/boolean' | ||
* | ||
@@ -54,3 +54,3 @@ * assert.deepStrictEqual( | ||
* some(true), | ||
* map(fold(() => 'false', () => 'true')) | ||
* map(match(() => 'false', () => 'true')) | ||
* ), | ||
@@ -63,3 +63,3 @@ * some('true') | ||
*/ | ||
exports.fold = exports.foldW; | ||
exports.match = exports.matchW; | ||
// ------------------------------------------------------------------------------------- | ||
@@ -66,0 +66,0 @@ // instances |
@@ -18,3 +18,3 @@ # Changelog | ||
# 3.0.0-alpha.13 | ||
# 3.0.0-alpha.14 | ||
@@ -21,0 +21,0 @@ - **Breaking Change** |
@@ -233,3 +233,3 @@ /** | ||
/** | ||
* Less strict version of [`fold`](#fold). | ||
* Less strict version of [`match`](#match). | ||
* | ||
@@ -239,3 +239,3 @@ * @category destructors | ||
*/ | ||
export declare const foldW: <E, B, A, C>(onLeft: (e: E) => B, onRight: (a: A) => C) => (ma: Either<E, A>) => B | C | ||
export declare const matchW: <E, B, A, C>(onLeft: (e: E) => B, onRight: (a: A) => C) => (ma: Either<E, A>) => B | C | ||
/** | ||
@@ -256,3 +256,3 @@ * Takes two functions and an `Either` value, if the value is a `Left` the inner value is applied to the first function, | ||
* E.right(1), | ||
* E.fold(onLeft, onRight) | ||
* E.match(onLeft, onRight) | ||
* ), | ||
@@ -264,3 +264,3 @@ * 'Ok: 1' | ||
* E.left(['error 1', 'error 2']), | ||
* E.fold(onLeft, onRight) | ||
* E.match(onLeft, onRight) | ||
* ), | ||
@@ -273,3 +273,3 @@ * 'Errors: error 1, error 2' | ||
*/ | ||
export declare const fold: <E, B, A>(onLeft: (e: E) => B, onRight: (a: A) => B) => (ma: Either<E, A>) => B | ||
export declare const match: <E, B, A>(onLeft: (e: E) => B, onRight: (a: A) => B) => (ma: Either<E, A>) => B | ||
/** | ||
@@ -276,0 +276,0 @@ * Less strict version of [`getOrElse`](#getOrElse). |
@@ -183,3 +183,3 @@ import { apFirst as apFirst_, apSecond as apSecond_, apS as apS_, apT as apT_ } from '../Apply'; | ||
/** | ||
* Less strict version of [`fold`](#fold). | ||
* Less strict version of [`match`](#match). | ||
* | ||
@@ -189,3 +189,3 @@ * @category destructors | ||
*/ | ||
export const foldW = (onLeft, onRight) => (ma) => isLeft(ma) ? onLeft(ma.left) : onRight(ma.right); | ||
export const matchW = (onLeft, onRight) => (ma) => isLeft(ma) ? onLeft(ma.left) : onRight(ma.right); | ||
/** | ||
@@ -206,3 +206,3 @@ * Takes two functions and an `Either` value, if the value is a `Left` the inner value is applied to the first function, | ||
* E.right(1), | ||
* E.fold(onLeft, onRight) | ||
* E.match(onLeft, onRight) | ||
* ), | ||
@@ -214,3 +214,3 @@ * 'Ok: 1' | ||
* E.left(['error 1', 'error 2']), | ||
* E.fold(onLeft, onRight) | ||
* E.match(onLeft, onRight) | ||
* ), | ||
@@ -223,3 +223,3 @@ * 'Errors: error 1, error 2' | ||
*/ | ||
export const fold = foldW; | ||
export const match = matchW; | ||
/** | ||
@@ -264,3 +264,3 @@ * Less strict version of [`getOrElse`](#getOrElse). | ||
/*#__PURE__*/ | ||
foldW(identity, identity); | ||
matchW(identity, identity); | ||
// ------------------------------------------------------------------------------------- | ||
@@ -267,0 +267,0 @@ // combinators |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.getApplicativeValidation = exports.getWitherable = exports.getFilterable = exports.getCompactable = exports.getSemigroup = exports.getEq = exports.getShow = exports.sequence = exports.traverse = exports.reduceRight = exports.foldMap = exports.reduce = exports.duplicate = exports.extend = exports.alt = exports.altW = exports.flatten = exports.chain = exports.chainW = exports.of = exports.ap = exports.apW = exports.mapLeft = exports.bimap = exports.map = exports.filterOrElse = exports.filterOrElseW = exports.orElse = exports.orElseW = exports.tryCatchK = exports.swap = exports.chainOptionK = exports.fromOptionK = exports.chainNullableK = exports.fromNullableK = exports.toUnion = exports.getOrElse = exports.getOrElseW = exports.fold = exports.foldW = exports.fromPredicate = exports.fromOption = exports.stringifyJSON = exports.parseJSON = exports.tryCatch = exports.fromNullable = exports.right = exports.left = exports.isRight = exports.isLeft = void 0; | ||
exports.getApplicativeValidation = exports.getWitherable = exports.getFilterable = exports.getCompactable = exports.getSemigroup = exports.getEq = exports.getShow = exports.sequence = exports.traverse = exports.reduceRight = exports.foldMap = exports.reduce = exports.duplicate = exports.extend = exports.alt = exports.altW = exports.flatten = exports.chain = exports.chainW = exports.of = exports.ap = exports.apW = exports.mapLeft = exports.bimap = exports.map = exports.filterOrElse = exports.filterOrElseW = exports.orElse = exports.orElseW = exports.tryCatchK = exports.swap = exports.chainOptionK = exports.fromOptionK = exports.chainNullableK = exports.fromNullableK = exports.toUnion = exports.getOrElse = exports.getOrElseW = exports.match = exports.matchW = exports.fromPredicate = exports.fromOption = exports.stringifyJSON = exports.parseJSON = exports.tryCatch = exports.fromNullable = exports.right = exports.left = exports.isRight = exports.isLeft = void 0; | ||
exports.sequenceReadonlyArray = exports.traverseReadonlyArray = exports.traverseReadonlyArrayWithIndex = exports.apTW = exports.apT = exports.tupled = exports.ApT = exports.apSW = exports.apS = exports.bindW = exports.bind = exports.bindTo = exports.Do = exports.exists = exports.elem = exports.FromEither = exports.Extend = exports.Alt = exports.Bifunctor = exports.Traversable = exports.Foldable = exports.chainFirstW = exports.chainFirst = exports.Monad = exports.Applicative = exports.apSecond = exports.apFirst = exports.Apply = exports.Pointed = exports.Functor = exports.getAltValidation = void 0; | ||
@@ -201,3 +201,3 @@ var Apply_1 = require("../Apply"); | ||
/** | ||
* Less strict version of [`fold`](#fold). | ||
* Less strict version of [`match`](#match). | ||
* | ||
@@ -207,6 +207,6 @@ * @category destructors | ||
*/ | ||
var foldW = function (onLeft, onRight) { return function (ma) { | ||
var matchW = function (onLeft, onRight) { return function (ma) { | ||
return exports.isLeft(ma) ? onLeft(ma.left) : onRight(ma.right); | ||
}; }; | ||
exports.foldW = foldW; | ||
exports.matchW = matchW; | ||
/** | ||
@@ -227,3 +227,3 @@ * Takes two functions and an `Either` value, if the value is a `Left` the inner value is applied to the first function, | ||
* E.right(1), | ||
* E.fold(onLeft, onRight) | ||
* E.match(onLeft, onRight) | ||
* ), | ||
@@ -235,3 +235,3 @@ * 'Ok: 1' | ||
* E.left(['error 1', 'error 2']), | ||
* E.fold(onLeft, onRight) | ||
* E.match(onLeft, onRight) | ||
* ), | ||
@@ -244,3 +244,3 @@ * 'Errors: error 1, error 2' | ||
*/ | ||
exports.fold = exports.foldW; | ||
exports.match = exports.matchW; | ||
/** | ||
@@ -288,3 +288,3 @@ * Less strict version of [`getOrElse`](#getOrElse). | ||
/*#__PURE__*/ | ||
exports.foldW(function_1.identity, function_1.identity); | ||
exports.matchW(function_1.identity, function_1.identity); | ||
// ------------------------------------------------------------------------------------- | ||
@@ -291,0 +291,0 @@ // combinators |
@@ -122,3 +122,3 @@ /** | ||
*/ | ||
export declare function fold<M extends URIS2>( | ||
export declare function match<M extends URIS2>( | ||
M: Monad2<M> | ||
@@ -129,6 +129,6 @@ ): <E, R, B, A>( | ||
) => (ma: Kind2<M, R, Either<E, A>>) => Kind2<M, R, B> | ||
export declare function fold<M extends URIS>( | ||
export declare function match<M extends URIS>( | ||
M: Monad1<M> | ||
): <E, B, A>(onLeft: (e: E) => Kind<M, B>, onRight: (a: A) => Kind<M, B>) => (ma: Kind<M, Either<E, A>>) => Kind<M, B> | ||
export declare function fold<M>( | ||
export declare function match<M>( | ||
M: Monad<M> | ||
@@ -135,0 +135,0 @@ ): <E, B, A>(onLeft: (e: E) => HKT<M, B>, onRight: (a: A) => HKT<M, B>) => (ma: HKT<M, Either<E, A>>) => HKT<M, B> |
@@ -38,7 +38,7 @@ /** | ||
} | ||
export function fold(M) { | ||
return (onLeft, onRight) => M.chain(E.fold(onLeft, onRight)); | ||
export function match(M) { | ||
return (onLeft, onRight) => M.chain(E.match(onLeft, onRight)); | ||
} | ||
export function getOrElse(M) { | ||
return (onLeft) => M.chain(E.fold(onLeft, M.of)); | ||
return (onLeft) => M.chain(E.match(onLeft, M.of)); | ||
} | ||
@@ -52,3 +52,3 @@ export function orElse(M) { | ||
export function altValidation(M, S) { | ||
return (second) => (first) => pipe(first, M.chain(E.fold((e1) => pipe(second(), M.map(E.mapLeft((e2) => S.concat(e2)(e1)))), right(M)))); | ||
return (second) => (first) => pipe(first, M.chain(E.match((e1) => pipe(second(), M.map(E.mapLeft((e2) => S.concat(e2)(e1)))), right(M)))); | ||
} | ||
@@ -55,0 +55,0 @@ export function toUnion(F) { |
@@ -22,3 +22,3 @@ "use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.toUnion = exports.altValidation = exports.swap = exports.orElse = exports.getOrElse = exports.fold = exports.mapLeft = exports.bimap = exports.alt = exports.chain = exports.ap = exports.map = exports.leftF = exports.rightF = exports.left = exports.right = void 0; | ||
exports.toUnion = exports.altValidation = exports.swap = exports.orElse = exports.getOrElse = exports.match = exports.mapLeft = exports.bimap = exports.alt = exports.chain = exports.ap = exports.map = exports.leftF = exports.rightF = exports.left = exports.right = void 0; | ||
/** | ||
@@ -71,8 +71,8 @@ * @since 3.0.0 | ||
exports.mapLeft = mapLeft; | ||
function fold(M) { | ||
return function (onLeft, onRight) { return M.chain(E.fold(onLeft, onRight)); }; | ||
function match(M) { | ||
return function (onLeft, onRight) { return M.chain(E.match(onLeft, onRight)); }; | ||
} | ||
exports.fold = fold; | ||
exports.match = match; | ||
function getOrElse(M) { | ||
return function (onLeft) { return M.chain(E.fold(onLeft, M.of)); }; | ||
return function (onLeft) { return M.chain(E.match(onLeft, M.of)); }; | ||
} | ||
@@ -90,3 +90,3 @@ exports.getOrElse = getOrElse; | ||
return function (second) { return function (first) { | ||
return function_1.pipe(first, M.chain(E.fold(function (e1) { return function_1.pipe(second(), M.map(E.mapLeft(function (e2) { return S.concat(e2)(e1); }))); }, right(M)))); | ||
return function_1.pipe(first, M.chain(E.match(function (e1) { return function_1.pipe(second(), M.map(E.mapLeft(function (e2) { return S.concat(e2)(e1); }))); }, right(M)))); | ||
}; }; | ||
@@ -93,0 +93,0 @@ } |
@@ -14,2 +14,3 @@ /** | ||
import { Monoid } from '../Monoid' | ||
import { Semigroup } from '../Semigroup' | ||
/** | ||
@@ -75,2 +76,7 @@ * @category type classes | ||
*/ | ||
export declare const getSemigroup: <A>() => Semigroup<Eq<A>> | ||
/** | ||
* @category instances | ||
* @since 3.0.0 | ||
*/ | ||
export declare const getMonoid: <A>() => Monoid<Eq<A>> | ||
@@ -77,0 +83,0 @@ /** |
@@ -68,4 +68,11 @@ import { flow } from '../function'; | ||
*/ | ||
export const getSemigroup = () => ({ | ||
concat: (second) => (first) => fromEquals((b) => (a) => first.equals(b)(a) && second.equals(b)(a)) | ||
}); | ||
/** | ||
* @category instances | ||
* @since 3.0.0 | ||
*/ | ||
export const getMonoid = () => ({ | ||
concat: (second) => (first) => fromEquals((b) => (a) => first.equals(b)(a) && second.equals(b)(a)), | ||
concat: getSemigroup().concat, | ||
empty: { | ||
@@ -72,0 +79,0 @@ equals: () => () => true |
12
Eq/Eq.js
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.Contravariant = exports.getMonoid = exports.EqStrict = exports.contramap = exports.tuple = exports.struct = exports.fromEquals = void 0; | ||
exports.Contravariant = exports.getMonoid = exports.getSemigroup = exports.EqStrict = exports.contramap = exports.tuple = exports.struct = exports.fromEquals = void 0; | ||
var function_1 = require("../function"); | ||
@@ -85,4 +85,12 @@ // ------------------------------------------------------------------------------------- | ||
*/ | ||
var getSemigroup = function () { return ({ | ||
concat: function (second) { return function (first) { return exports.fromEquals(function (b) { return function (a) { return first.equals(b)(a) && second.equals(b)(a); }; }); }; } | ||
}); }; | ||
exports.getSemigroup = getSemigroup; | ||
/** | ||
* @category instances | ||
* @since 3.0.0 | ||
*/ | ||
var getMonoid = function () { return ({ | ||
concat: function (second) { return function (first) { return exports.fromEquals(function (b) { return function (a) { return first.equals(b)(a) && second.equals(b)(a); }; }); }; }, | ||
concat: exports.getSemigroup().concat, | ||
empty: { | ||
@@ -89,0 +97,0 @@ equals: function () { return function () { return true; }; } |
@@ -73,3 +73,3 @@ /** | ||
*/ | ||
export declare const fold: <E, B, A>( | ||
export declare const match: <E, B, A>( | ||
onLeft: (e: E) => I.IO<B>, | ||
@@ -79,3 +79,3 @@ onRight: (a: A) => I.IO<B> | ||
/** | ||
* Less strict version of [`fold`](#fold). | ||
* Less strict version of [`match`](#match). | ||
* | ||
@@ -85,3 +85,3 @@ * @category destructors | ||
*/ | ||
export declare const foldW: <E, B, A, C>( | ||
export declare const matchW: <E, B, A, C>( | ||
onLeft: (e: E) => IO<B>, | ||
@@ -88,0 +88,0 @@ onRight: (a: A) => IO<C> |
@@ -68,7 +68,7 @@ import { apFirst as apFirst_, apSecond as apSecond_, apS as apS_, apT as apT_, ap as ap_ } from '../Apply'; | ||
*/ | ||
export const fold = | ||
export const match = | ||
/*#__PURE__*/ | ||
ET.fold(I.Monad); | ||
ET.match(I.Monad); | ||
/** | ||
* Less strict version of [`fold`](#fold). | ||
* Less strict version of [`match`](#match). | ||
* | ||
@@ -78,3 +78,3 @@ * @category destructors | ||
*/ | ||
export const foldW = fold; | ||
export const matchW = match; | ||
/** | ||
@@ -81,0 +81,0 @@ * @category destructors |
@@ -33,3 +33,3 @@ "use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.chainEitherK = exports.chainOptionK = exports.fromOptionK = exports.fromOption = exports.FromEither = exports.FromIO = exports.Alt = exports.chainFirstW = exports.chainFirst = exports.ApplicativeSeq = exports.ApplySeq = exports.Monad = exports.ApplicativePar = exports.apSecond = exports.apFirst = exports.ApplyPar = exports.Bifunctor = exports.Pointed = exports.Functor = exports.getFilterable = exports.getCompactable = exports.getAltIOValidation = exports.getApplicativeIOValidation = exports.altW = exports.alt = exports.flatten = exports.chainW = exports.chain = exports.of = exports.apW = exports.ap = exports.mapLeft = exports.bimap = exports.map = exports.tryCatchK = exports.swap = exports.orElseW = exports.orElse = exports.toUnion = exports.getOrElseW = exports.getOrElse = exports.foldW = exports.fold = exports.fromIO = exports.tryCatch = exports.fromEither = exports.leftIO = exports.rightIO = exports.right = exports.left = void 0; | ||
exports.chainEitherK = exports.chainOptionK = exports.fromOptionK = exports.fromOption = exports.FromEither = exports.FromIO = exports.Alt = exports.chainFirstW = exports.chainFirst = exports.ApplicativeSeq = exports.ApplySeq = exports.Monad = exports.ApplicativePar = exports.apSecond = exports.apFirst = exports.ApplyPar = exports.Bifunctor = exports.Pointed = exports.Functor = exports.getFilterable = exports.getCompactable = exports.getAltIOValidation = exports.getApplicativeIOValidation = exports.altW = exports.alt = exports.flatten = exports.chainW = exports.chain = exports.of = exports.apW = exports.ap = exports.mapLeft = exports.bimap = exports.map = exports.tryCatchK = exports.swap = exports.orElseW = exports.orElse = exports.toUnion = exports.getOrElseW = exports.getOrElse = exports.matchW = exports.match = exports.fromIO = exports.tryCatch = exports.fromEither = exports.leftIO = exports.rightIO = exports.right = exports.left = void 0; | ||
exports.sequenceReadonlyArraySeq = exports.traverseReadonlyArraySeq = exports.traverseReadonlyArrayWithIndexSeq = exports.sequenceReadonlyArray = exports.traverseReadonlyArray = exports.traverseReadonlyArrayWithIndex = exports.apTW = exports.apT = exports.tupled = exports.ApT = exports.apSW = exports.apS = exports.bindW = exports.bind = exports.bindTo = exports.Do = exports.bracket = exports.fromEitherK = exports.filterOrElseW = exports.filterOrElse = exports.fromPredicate = exports.chainEitherKW = void 0; | ||
@@ -104,7 +104,7 @@ var Apply_1 = require("../Apply"); | ||
*/ | ||
exports.fold = | ||
exports.match = | ||
/*#__PURE__*/ | ||
ET.fold(I.Monad); | ||
ET.match(I.Monad); | ||
/** | ||
* Less strict version of [`fold`](#fold). | ||
* Less strict version of [`match`](#match). | ||
* | ||
@@ -114,3 +114,3 @@ * @category destructors | ||
*/ | ||
exports.foldW = exports.fold; | ||
exports.matchW = exports.match; | ||
/** | ||
@@ -117,0 +117,0 @@ * @category destructors |
@@ -128,10 +128,10 @@ /** | ||
* @example | ||
* import { fold } from 'fp-ts/Monoid' | ||
* import { concatAll } from 'fp-ts/Monoid' | ||
* import * as N from 'fp-ts/number' | ||
* | ||
* assert.deepStrictEqual(fold(N.MonoidSum)([1, 2, 3]), 6) | ||
* assert.deepStrictEqual(fold(N.MonoidSum)([]), 0) | ||
* assert.deepStrictEqual(concatAll(N.MonoidSum)([1, 2, 3]), 6) | ||
* assert.deepStrictEqual(concatAll(N.MonoidSum)([]), 0) | ||
* | ||
* @since 3.0.0 | ||
*/ | ||
export declare const fold: <A>(M: Monoid<A>) => (as: readonly A[]) => A | ||
export declare const concatAll: <A>(M: Monoid<A>) => (as: readonly A[]) => A |
@@ -134,10 +134,10 @@ import * as S from '../Semigroup'; | ||
* @example | ||
* import { fold } from 'fp-ts/Monoid' | ||
* import { concatAll } from 'fp-ts/Monoid' | ||
* import * as N from 'fp-ts/number' | ||
* | ||
* assert.deepStrictEqual(fold(N.MonoidSum)([1, 2, 3]), 6) | ||
* assert.deepStrictEqual(fold(N.MonoidSum)([]), 0) | ||
* assert.deepStrictEqual(concatAll(N.MonoidSum)([1, 2, 3]), 6) | ||
* assert.deepStrictEqual(concatAll(N.MonoidSum)([]), 0) | ||
* | ||
* @since 3.0.0 | ||
*/ | ||
export const fold = (M) => S.fold(M)(M.empty); | ||
export const concatAll = (M) => S.concatAll(M)(M.empty); |
@@ -22,3 +22,3 @@ "use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.fold = exports.tuple = exports.struct = exports.reverse = exports.max = exports.min = void 0; | ||
exports.concatAll = exports.tuple = exports.struct = exports.reverse = exports.max = exports.min = void 0; | ||
var S = __importStar(require("../Semigroup")); | ||
@@ -168,11 +168,11 @@ // ------------------------------------------------------------------------------------- | ||
* @example | ||
* import { fold } from 'fp-ts/Monoid' | ||
* import { concatAll } from 'fp-ts/Monoid' | ||
* import * as N from 'fp-ts/number' | ||
* | ||
* assert.deepStrictEqual(fold(N.MonoidSum)([1, 2, 3]), 6) | ||
* assert.deepStrictEqual(fold(N.MonoidSum)([]), 0) | ||
* assert.deepStrictEqual(concatAll(N.MonoidSum)([1, 2, 3]), 6) | ||
* assert.deepStrictEqual(concatAll(N.MonoidSum)([]), 0) | ||
* | ||
* @since 3.0.0 | ||
*/ | ||
var fold = function (M) { return S.fold(M)(M.empty); }; | ||
exports.fold = fold; | ||
var concatAll = function (M) { return S.concatAll(M)(M.empty); }; | ||
exports.concatAll = concatAll; |
@@ -185,3 +185,3 @@ /** | ||
/** | ||
* Less strict version of [`fold`](#fold). | ||
* Less strict version of [`match`](#match). | ||
* | ||
@@ -191,3 +191,3 @@ * @category destructors | ||
*/ | ||
export declare const foldW: <B, A, C>(onNone: Lazy<B>, onSome: (a: A) => C) => (ma: Option<A>) => B | C | ||
export declare const matchW: <B, A, C>(onNone: Lazy<B>, onSome: (a: A) => C) => (ma: Option<A>) => B | C | ||
/** | ||
@@ -198,3 +198,3 @@ * Takes a (lazy) default value, a function, and an `Option` value, if the `Option` value is `None` the default value is | ||
* @example | ||
* import { some, none, fold } from 'fp-ts/Option' | ||
* import { some, none, match } from 'fp-ts/Option' | ||
* import { pipe } from 'fp-ts/function' | ||
@@ -205,3 +205,3 @@ * | ||
* some(1), | ||
* fold(() => 'a none', a => `a some containing ${a}`) | ||
* match(() => 'a none', a => `a some containing ${a}`) | ||
* ), | ||
@@ -214,3 +214,3 @@ * 'a some containing 1' | ||
* none, | ||
* fold(() => 'a none', a => `a some containing ${a}`) | ||
* match(() => 'a none', a => `a some containing ${a}`) | ||
* ), | ||
@@ -223,3 +223,3 @@ * 'a none' | ||
*/ | ||
export declare const fold: <B, A>(onNone: Lazy<B>, onSome: (a: A) => B) => (ma: Option<A>) => B | ||
export declare const match: <B, A>(onNone: Lazy<B>, onSome: (a: A) => B) => (ma: Option<A>) => B | ||
/** | ||
@@ -226,0 +226,0 @@ * Extracts the value out of the structure, if it exists. Otherwise returns `null`. |
@@ -141,3 +141,3 @@ import { apFirst as apFirst_, apSecond as apSecond_, apS as apS_, apT as apT_ } from '../Apply'; | ||
/** | ||
* Less strict version of [`fold`](#fold). | ||
* Less strict version of [`match`](#match). | ||
* | ||
@@ -147,3 +147,3 @@ * @category destructors | ||
*/ | ||
export const foldW = (onNone, onSome) => (ma) => isNone(ma) ? onNone() : onSome(ma.value); | ||
export const matchW = (onNone, onSome) => (ma) => isNone(ma) ? onNone() : onSome(ma.value); | ||
/** | ||
@@ -154,3 +154,3 @@ * Takes a (lazy) default value, a function, and an `Option` value, if the `Option` value is `None` the default value is | ||
* @example | ||
* import { some, none, fold } from 'fp-ts/Option' | ||
* import { some, none, match } from 'fp-ts/Option' | ||
* import { pipe } from 'fp-ts/function' | ||
@@ -161,3 +161,3 @@ * | ||
* some(1), | ||
* fold(() => 'a none', a => `a some containing ${a}`) | ||
* match(() => 'a none', a => `a some containing ${a}`) | ||
* ), | ||
@@ -170,3 +170,3 @@ * 'a some containing 1' | ||
* none, | ||
* fold(() => 'a none', a => `a some containing ${a}`) | ||
* match(() => 'a none', a => `a some containing ${a}`) | ||
* ), | ||
@@ -179,3 +179,3 @@ * 'a none' | ||
*/ | ||
export const fold = foldW; | ||
export const match = matchW; | ||
/** | ||
@@ -208,3 +208,3 @@ * Extracts the value out of the structure, if it exists. Otherwise returns `null`. | ||
/*#__PURE__*/ | ||
fold(constNull, identity); | ||
match(constNull, identity); | ||
/** | ||
@@ -237,3 +237,3 @@ * Extracts the value out of the structure, if it exists. Otherwise returns `undefined`. | ||
/*#__PURE__*/ | ||
fold(constUndefined, identity); | ||
match(constUndefined, identity); | ||
/** | ||
@@ -240,0 +240,0 @@ * Less strict version of [`getOrElse`](#getOrElse). |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.Pointed = exports.Functor = exports.getMonoid = exports.getLastMonoid = exports.getFirstMonoid = exports.getOrd = exports.getEq = exports.getShow = exports.wilt = exports.wither = exports.sequence = exports.traverse = exports.partitionMap = exports.partition = exports.filterMap = exports.filter = exports.separate = exports.compact = exports.reduceRight = exports.foldMap = exports.reduce = exports.duplicate = exports.extend = exports.zero = exports.alt = exports.altW = exports.flatten = exports.chain = exports.of = exports.ap = exports.map = exports.chainNullableK = exports.fromNullableK = exports.tryCatchK = exports.getOrElse = exports.getOrElseW = exports.toUndefined = exports.toNullable = exports.fold = exports.foldW = exports.fromEither = exports.getRight = exports.getLeft = exports.tryCatch = exports.fromPredicate = exports.fromNullable = exports.some = exports.none = exports.isNone = exports.isSome = void 0; | ||
exports.Pointed = exports.Functor = exports.getMonoid = exports.getLastMonoid = exports.getFirstMonoid = exports.getOrd = exports.getEq = exports.getShow = exports.wilt = exports.wither = exports.sequence = exports.traverse = exports.partitionMap = exports.partition = exports.filterMap = exports.filter = exports.separate = exports.compact = exports.reduceRight = exports.foldMap = exports.reduce = exports.duplicate = exports.extend = exports.zero = exports.alt = exports.altW = exports.flatten = exports.chain = exports.of = exports.ap = exports.map = exports.chainNullableK = exports.fromNullableK = exports.tryCatchK = exports.getOrElse = exports.getOrElseW = exports.toUndefined = exports.toNullable = exports.match = exports.matchW = exports.fromEither = exports.getRight = exports.getLeft = exports.tryCatch = exports.fromPredicate = exports.fromNullable = exports.some = exports.none = exports.isNone = exports.isSome = void 0; | ||
exports.sequenceReadonlyArray = exports.traverseReadonlyArray = exports.traverseReadonlyArrayWithIndex = exports.apT = exports.tupled = exports.ApT = exports.apS = exports.bind = exports.bindTo = exports.Do = exports.getRefinement = exports.exists = exports.elem = exports.Witherable = exports.Traversable = exports.Filterable = exports.Compactable = exports.Extend = exports.Alternative = exports.Alt = exports.Foldable = exports.chainFirst = exports.Monad = exports.Applicative = exports.apSecond = exports.apFirst = exports.Apply = void 0; | ||
@@ -153,3 +153,3 @@ var Apply_1 = require("../Apply"); | ||
/** | ||
* Less strict version of [`fold`](#fold). | ||
* Less strict version of [`match`](#match). | ||
* | ||
@@ -159,6 +159,6 @@ * @category destructors | ||
*/ | ||
var foldW = function (onNone, onSome) { return function (ma) { | ||
var matchW = function (onNone, onSome) { return function (ma) { | ||
return exports.isNone(ma) ? onNone() : onSome(ma.value); | ||
}; }; | ||
exports.foldW = foldW; | ||
exports.matchW = matchW; | ||
/** | ||
@@ -169,3 +169,3 @@ * Takes a (lazy) default value, a function, and an `Option` value, if the `Option` value is `None` the default value is | ||
* @example | ||
* import { some, none, fold } from 'fp-ts/Option' | ||
* import { some, none, match } from 'fp-ts/Option' | ||
* import { pipe } from 'fp-ts/function' | ||
@@ -176,3 +176,3 @@ * | ||
* some(1), | ||
* fold(() => 'a none', a => `a some containing ${a}`) | ||
* match(() => 'a none', a => `a some containing ${a}`) | ||
* ), | ||
@@ -185,3 +185,3 @@ * 'a some containing 1' | ||
* none, | ||
* fold(() => 'a none', a => `a some containing ${a}`) | ||
* match(() => 'a none', a => `a some containing ${a}`) | ||
* ), | ||
@@ -194,3 +194,3 @@ * 'a none' | ||
*/ | ||
exports.fold = exports.foldW; | ||
exports.match = exports.matchW; | ||
/** | ||
@@ -223,3 +223,3 @@ * Extracts the value out of the structure, if it exists. Otherwise returns `null`. | ||
/*#__PURE__*/ | ||
exports.fold(function_1.constNull, function_1.identity); | ||
exports.match(function_1.constNull, function_1.identity); | ||
/** | ||
@@ -252,3 +252,3 @@ * Extracts the value out of the structure, if it exists. Otherwise returns `undefined`. | ||
/*#__PURE__*/ | ||
exports.fold(function_1.constUndefined, function_1.identity); | ||
exports.match(function_1.constUndefined, function_1.identity); | ||
/** | ||
@@ -255,0 +255,0 @@ * Less strict version of [`getOrElse`](#getOrElse). |
@@ -78,6 +78,6 @@ /** | ||
*/ | ||
export declare function fold<M extends URIS>( | ||
export declare function match<M extends URIS>( | ||
M: Monad1<M> | ||
): <B, A>(onNone: () => Kind<M, B>, onSome: (a: A) => Kind<M, B>) => (ma: Kind<M, Option<A>>) => Kind<M, B> | ||
export declare function fold<M>( | ||
export declare function match<M>( | ||
M: Monad<M> | ||
@@ -84,0 +84,0 @@ ): <B, A>(onNone: () => HKT<M, B>, onSome: (a: A) => HKT<M, B>) => (ma: HKT<M, Option<A>>) => HKT<M, B> |
@@ -33,7 +33,7 @@ /** | ||
} | ||
export function fold(M) { | ||
return (onNone, onSome) => M.chain(O.fold(onNone, onSome)); | ||
export function match(M) { | ||
return (onNone, onSome) => M.chain(O.match(onNone, onSome)); | ||
} | ||
export function getOrElse(M) { | ||
return (onNone) => M.chain(O.fold(onNone, M.of)); | ||
return (onNone) => M.chain(O.match(onNone, M.of)); | ||
} | ||
@@ -58,7 +58,7 @@ export function chainNullableK(M) { | ||
const _none = none(M); | ||
return (f) => M.chain(O.fold(() => _none, f)); | ||
return (f) => M.chain(O.match(() => _none, f)); | ||
} | ||
export function alt(M) { | ||
const _some = some(M); | ||
return (second) => M.chain(O.fold(second, _some)); | ||
return (second) => M.chain(O.match(second, _some)); | ||
} |
@@ -22,3 +22,3 @@ "use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.alt = exports.chain = exports.ap = exports.map = exports.chainOptionK = exports.chainNullableK = exports.getOrElse = exports.fold = exports.fromEither = exports.fromPredicate = exports.fromOptionK = exports.fromNullableK = exports.fromNullable = exports.fromF = exports.none = exports.some = void 0; | ||
exports.alt = exports.chain = exports.ap = exports.map = exports.chainOptionK = exports.chainNullableK = exports.getOrElse = exports.match = exports.fromEither = exports.fromPredicate = exports.fromOptionK = exports.fromNullableK = exports.fromNullable = exports.fromF = exports.none = exports.some = void 0; | ||
/** | ||
@@ -64,8 +64,8 @@ * @since 3.0.0 | ||
exports.fromEither = fromEither; | ||
function fold(M) { | ||
return function (onNone, onSome) { return M.chain(O.fold(onNone, onSome)); }; | ||
function match(M) { | ||
return function (onNone, onSome) { return M.chain(O.match(onNone, onSome)); }; | ||
} | ||
exports.fold = fold; | ||
exports.match = match; | ||
function getOrElse(M) { | ||
return function (onNone) { return M.chain(O.fold(onNone, M.of)); }; | ||
return function (onNone) { return M.chain(O.match(onNone, M.of)); }; | ||
} | ||
@@ -95,3 +95,3 @@ exports.getOrElse = getOrElse; | ||
var _none = none(M); | ||
return function (f) { return M.chain(O.fold(function () { return _none; }, f)); }; | ||
return function (f) { return M.chain(O.match(function () { return _none; }, f)); }; | ||
} | ||
@@ -101,4 +101,4 @@ exports.chain = chain; | ||
var _some = some(M); | ||
return function (second) { return M.chain(O.fold(second, _some)); }; | ||
return function (second) { return M.chain(O.match(second, _some)); }; | ||
} | ||
exports.alt = alt; |
@@ -126,3 +126,3 @@ /** | ||
* import { pipe } from 'fp-ts/function' | ||
* import { fold } from 'fp-ts/Monoid' | ||
* import { concatAll } from 'fp-ts/Monoid' | ||
* import * as B from 'fp-ts/boolean' | ||
@@ -164,3 +164,3 @@ * import * as N from 'fp-ts/number' | ||
* // sort by name, then by age, then by `rememberMe` | ||
* const O1 = fold(M)([byName, byAge, byRememberMe]) | ||
* const O1 = concatAll(M)([byName, byAge, byRememberMe]) | ||
* assert.deepStrictEqual(sort(O1)(users), [ | ||
@@ -174,3 +174,3 @@ * { id: 3, name: 'Giulio', age: 44, rememberMe: false }, | ||
* // now `rememberMe = true` first, then by name, then by age | ||
* const O2 = fold(M)([reverse(byRememberMe), byName, byAge]) | ||
* const O2 = concatAll(M)([reverse(byRememberMe), byName, byAge]) | ||
* assert.deepStrictEqual(sort(O2)(users), [ | ||
@@ -177,0 +177,0 @@ * { id: 4, name: 'Giulio', age: 44, rememberMe: true }, |
@@ -120,3 +120,3 @@ import { flow } from '../function'; | ||
* import { pipe } from 'fp-ts/function' | ||
* import { fold } from 'fp-ts/Monoid' | ||
* import { concatAll } from 'fp-ts/Monoid' | ||
* import * as B from 'fp-ts/boolean' | ||
@@ -158,3 +158,3 @@ * import * as N from 'fp-ts/number' | ||
* // sort by name, then by age, then by `rememberMe` | ||
* const O1 = fold(M)([byName, byAge, byRememberMe]) | ||
* const O1 = concatAll(M)([byName, byAge, byRememberMe]) | ||
* assert.deepStrictEqual(sort(O1)(users), [ | ||
@@ -168,3 +168,3 @@ * { id: 3, name: 'Giulio', age: 44, rememberMe: false }, | ||
* // now `rememberMe = true` first, then by name, then by age | ||
* const O2 = fold(M)([reverse(byRememberMe), byName, byAge]) | ||
* const O2 = concatAll(M)([reverse(byRememberMe), byName, byAge]) | ||
* assert.deepStrictEqual(sort(O2)(users), [ | ||
@@ -171,0 +171,0 @@ * { id: 4, name: 'Giulio', age: 44, rememberMe: true }, |
@@ -141,3 +141,3 @@ "use strict"; | ||
* import { pipe } from 'fp-ts/function' | ||
* import { fold } from 'fp-ts/Monoid' | ||
* import { concatAll } from 'fp-ts/Monoid' | ||
* import * as B from 'fp-ts/boolean' | ||
@@ -179,3 +179,3 @@ * import * as N from 'fp-ts/number' | ||
* // sort by name, then by age, then by `rememberMe` | ||
* const O1 = fold(M)([byName, byAge, byRememberMe]) | ||
* const O1 = concatAll(M)([byName, byAge, byRememberMe]) | ||
* assert.deepStrictEqual(sort(O1)(users), [ | ||
@@ -189,3 +189,3 @@ * { id: 3, name: 'Giulio', age: 44, rememberMe: false }, | ||
* // now `rememberMe = true` first, then by name, then by age | ||
* const O2 = fold(M)([reverse(byRememberMe), byName, byAge]) | ||
* const O2 = concatAll(M)([reverse(byRememberMe), byName, byAge]) | ||
* assert.deepStrictEqual(sort(O2)(users), [ | ||
@@ -192,0 +192,0 @@ * { id: 4, name: 'Giulio', age: 44, rememberMe: true }, |
@@ -7,3 +7,3 @@ { | ||
"name": "fp-ts", | ||
"version": "3.0.0-alpha.13", | ||
"version": "3.0.0-alpha.14", | ||
"description": "Functional programming in TypeScript", | ||
@@ -10,0 +10,0 @@ "repository": { |
@@ -65,3 +65,3 @@ /** | ||
*/ | ||
export declare const fold: <E, R, B, A>( | ||
export declare const match: <E, R, B, A>( | ||
onLeft: (e: E) => R.Reader<R, B>, | ||
@@ -71,3 +71,3 @@ onRight: (a: A) => R.Reader<R, B> | ||
/** | ||
* Less strict version of [`fold`](#fold). | ||
* Less strict version of [`match`](#match). | ||
* | ||
@@ -77,3 +77,3 @@ * @category destructors | ||
*/ | ||
export declare const foldW: <E, R2, B, A, R3, C>( | ||
export declare const matchW: <E, R2, B, A, R3, C>( | ||
onLeft: (e: E) => Reader<R2, B>, | ||
@@ -80,0 +80,0 @@ onRight: (a: A) => Reader<R3, C> |
@@ -64,7 +64,7 @@ import { apFirst as apFirst_, apSecond as apSecond_, apS as apS_, apT as apT_, ap as ap_ } from '../Apply'; | ||
*/ | ||
export const fold = | ||
export const match = | ||
/*#__PURE__*/ | ||
ET.fold(R.Monad); | ||
ET.match(R.Monad); | ||
/** | ||
* Less strict version of [`fold`](#fold). | ||
* Less strict version of [`match`](#match). | ||
* | ||
@@ -74,3 +74,3 @@ * @category destructors | ||
*/ | ||
export const foldW = fold; | ||
export const matchW = match; | ||
/** | ||
@@ -77,0 +77,0 @@ * @category destructors |
@@ -33,3 +33,3 @@ "use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.filterOrElseW = exports.filterOrElse = exports.fromPredicate = exports.chainEitherKW = exports.chainEitherK = exports.chainOptionK = exports.fromOptionK = exports.fromOption = exports.FromEither = exports.Alt = exports.Bifunctor = exports.chainFirstW = exports.chainFirst = exports.Monad = exports.Applicative = exports.apSecond = exports.apFirst = exports.Apply = exports.Pointed = exports.Functor = exports.getFilterable = exports.getCompactable = exports.getAltReaderValidation = exports.getApplicativeReaderValidation = exports.altW = exports.alt = exports.flatten = exports.chainW = exports.chain = exports.of = exports.apW = exports.ap = exports.mapLeft = exports.bimap = exports.map = exports.swap = exports.orElseW = exports.orElse = exports.toUnion = exports.getOrElseW = exports.getOrElse = exports.foldW = exports.fold = exports.fromEither = exports.asks = exports.ask = exports.leftReader = exports.rightReader = exports.right = exports.left = void 0; | ||
exports.filterOrElseW = exports.filterOrElse = exports.fromPredicate = exports.chainEitherKW = exports.chainEitherK = exports.chainOptionK = exports.fromOptionK = exports.fromOption = exports.FromEither = exports.Alt = exports.Bifunctor = exports.chainFirstW = exports.chainFirst = exports.Monad = exports.Applicative = exports.apSecond = exports.apFirst = exports.Apply = exports.Pointed = exports.Functor = exports.getFilterable = exports.getCompactable = exports.getAltReaderValidation = exports.getApplicativeReaderValidation = exports.altW = exports.alt = exports.flatten = exports.chainW = exports.chain = exports.of = exports.apW = exports.ap = exports.mapLeft = exports.bimap = exports.map = exports.swap = exports.orElseW = exports.orElse = exports.toUnion = exports.getOrElseW = exports.getOrElse = exports.matchW = exports.match = exports.fromEither = exports.asks = exports.ask = exports.leftReader = exports.rightReader = exports.right = exports.left = void 0; | ||
exports.sequenceReadonlyArray = exports.traverseReadonlyArray = exports.traverseReadonlyArrayWithIndex = exports.apTW = exports.apT = exports.tupled = exports.ApT = exports.apSW = exports.apS = exports.bindW = exports.bind = exports.bindTo = exports.Do = exports.fromEitherK = void 0; | ||
@@ -101,7 +101,7 @@ var Apply_1 = require("../Apply"); | ||
*/ | ||
exports.fold = | ||
exports.match = | ||
/*#__PURE__*/ | ||
ET.fold(R.Monad); | ||
ET.match(R.Monad); | ||
/** | ||
* Less strict version of [`fold`](#fold). | ||
* Less strict version of [`match`](#match). | ||
* | ||
@@ -111,3 +111,3 @@ * @category destructors | ||
*/ | ||
exports.foldW = exports.fold; | ||
exports.matchW = exports.match; | ||
/** | ||
@@ -114,0 +114,0 @@ * @category destructors |
@@ -133,3 +133,3 @@ /** | ||
*/ | ||
export declare const fold: <E, R, B, A>( | ||
export declare const match: <E, R, B, A>( | ||
onLeft: (e: E) => RT.ReaderTask<R, B>, | ||
@@ -139,3 +139,3 @@ onRight: (a: A) => RT.ReaderTask<R, B> | ||
/** | ||
* Less strict version of [`fold`](#fold). | ||
* Less strict version of [`match`](#match). | ||
* | ||
@@ -145,3 +145,3 @@ * @category destructors | ||
*/ | ||
export declare const foldW: <E, R2, B, A, R3, C>( | ||
export declare const matchW: <E, R2, B, A, R3, C>( | ||
onLeft: (e: E) => ReaderTask<R2, B>, | ||
@@ -148,0 +148,0 @@ onRight: (a: A) => ReaderTask<R3, C> |
@@ -133,7 +133,7 @@ import { ap as ap_, apFirst as apFirst_, apS as apS_, apSecond as apSecond_, apT as apT_ } from '../Apply'; | ||
*/ | ||
export const fold = | ||
export const match = | ||
/*#__PURE__*/ | ||
ET.fold(RT.Monad); | ||
ET.match(RT.Monad); | ||
/** | ||
* Less strict version of [`fold`](#fold). | ||
* Less strict version of [`match`](#match). | ||
* | ||
@@ -143,3 +143,3 @@ * @category destructors | ||
*/ | ||
export const foldW = fold; | ||
export const matchW = match; | ||
/** | ||
@@ -146,0 +146,0 @@ * @category destructors |
@@ -33,3 +33,3 @@ "use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.ApplyPar = exports.Pointed = exports.Functor = exports.getFilterable = exports.getCompactable = exports.getAltReaderTaskValidation = exports.getApplicativeReaderTaskValidation = exports.altW = exports.alt = exports.flatten = exports.chainW = exports.chain = exports.of = exports.apW = exports.ap = exports.mapLeft = exports.bimap = exports.map = exports.chainTaskEitherK = exports.chainTaskEitherKW = exports.fromTaskEitherK = exports.chainIOEitherK = exports.chainIOEitherKW = exports.fromIOEitherK = exports.swap = exports.orElseW = exports.orElse = exports.toUnion = exports.getOrElseW = exports.getOrElse = exports.foldW = exports.fold = exports.fromTask = exports.fromIO = exports.fromEither = exports.asks = exports.ask = exports.leftIO = exports.rightIO = exports.fromReaderEither = exports.fromIOEither = exports.leftReaderTask = exports.rightReaderTask = exports.leftReader = exports.rightReader = exports.leftTask = exports.rightTask = exports.right = exports.left = exports.fromTaskEither = void 0; | ||
exports.ApplyPar = exports.Pointed = exports.Functor = exports.getFilterable = exports.getCompactable = exports.getAltReaderTaskValidation = exports.getApplicativeReaderTaskValidation = exports.altW = exports.alt = exports.flatten = exports.chainW = exports.chain = exports.of = exports.apW = exports.ap = exports.mapLeft = exports.bimap = exports.map = exports.chainTaskEitherK = exports.chainTaskEitherKW = exports.fromTaskEitherK = exports.chainIOEitherK = exports.chainIOEitherKW = exports.fromIOEitherK = exports.swap = exports.orElseW = exports.orElse = exports.toUnion = exports.getOrElseW = exports.getOrElse = exports.matchW = exports.match = exports.fromTask = exports.fromIO = exports.fromEither = exports.asks = exports.ask = exports.leftIO = exports.rightIO = exports.fromReaderEither = exports.fromIOEither = exports.leftReaderTask = exports.rightReaderTask = exports.leftReader = exports.rightReader = exports.leftTask = exports.rightTask = exports.right = exports.left = exports.fromTaskEither = void 0; | ||
exports.sequenceReadonlyArraySeq = exports.traverseReadonlyArraySeq = exports.traverseReadonlyArrayWithIndexSeq = exports.sequenceReadonlyArray = exports.traverseReadonlyArray = exports.traverseReadonlyArrayWithIndex = exports.apTW = exports.apT = exports.tupled = exports.ApT = exports.apSW = exports.apS = exports.bindW = exports.bind = exports.bindTo = exports.Do = exports.bracket = exports.Alt = exports.Bifunctor = exports.fromEitherK = exports.filterOrElseW = exports.filterOrElse = exports.fromPredicate = exports.chainEitherKW = exports.chainEitherK = exports.chainOptionK = exports.fromOptionK = exports.fromOption = exports.FromEither = exports.FromTask = exports.FromIO = exports.chainFirstW = exports.chainFirst = exports.ApplicativeSeq = exports.ApplySeq = exports.Monad = exports.ApplicativePar = exports.apSecond = exports.apFirst = void 0; | ||
@@ -175,7 +175,7 @@ var Apply_1 = require("../Apply"); | ||
*/ | ||
exports.fold = | ||
exports.match = | ||
/*#__PURE__*/ | ||
ET.fold(RT.Monad); | ||
ET.match(RT.Monad); | ||
/** | ||
* Less strict version of [`fold`](#fold). | ||
* Less strict version of [`match`](#match). | ||
* | ||
@@ -185,3 +185,3 @@ * @category destructors | ||
*/ | ||
exports.foldW = exports.fold; | ||
exports.matchW = exports.match; | ||
/** | ||
@@ -188,0 +188,0 @@ * @category destructors |
@@ -72,5 +72,5 @@ /** | ||
* @example | ||
* import { foldLeft } from 'fp-ts/ReadonlyArray' | ||
* import { matchLeft } from 'fp-ts/ReadonlyArray' | ||
* | ||
* const len: <A>(as: ReadonlyArray<A>) => number = foldLeft(() => 0, (_, tail) => 1 + len(tail)) | ||
* const len: <A>(as: ReadonlyArray<A>) => number = matchLeft(() => 0, (_, tail) => 1 + len(tail)) | ||
* assert.strictEqual(len([1, 2, 3]), 3) | ||
@@ -81,3 +81,3 @@ * | ||
*/ | ||
export declare const foldLeft: <B, A>( | ||
export declare const matchLeft: <B, A>( | ||
onEmpty: Lazy<B>, | ||
@@ -92,3 +92,3 @@ onCons: (head: A, tail: readonly A[]) => B | ||
*/ | ||
export declare const foldRight: <B, A>( | ||
export declare const matchRight: <B, A>( | ||
onEmpty: Lazy<B>, | ||
@@ -578,5 +578,6 @@ onCons: (init: readonly A[], last: A) => B | ||
* @example | ||
* import { prependToAll } from 'fp-ts/ReadonlyArray' | ||
* import { prependAll } from 'fp-ts/ReadonlyArray' | ||
* import { pipe } from 'fp-ts/function' | ||
* | ||
* assert.deepStrictEqual(prependToAll(9)([1, 2, 3, 4]), [9, 1, 9, 2, 9, 3, 9, 4]) | ||
* assert.deepStrictEqual(pipe([1, 2, 3, 4], prependAll(9)), [9, 1, 9, 2, 9, 3, 9, 4]) | ||
* | ||
@@ -586,3 +587,3 @@ * @category combinators | ||
*/ | ||
export declare const prependToAll: <A>(a: A) => (as: readonly A[]) => readonly A[] | ||
export declare const prependAll: <A>(a: A) => (as: readonly A[]) => readonly A[] | ||
/** | ||
@@ -589,0 +590,0 @@ * Places an element in between members of a `ReadonlyArray` |
@@ -64,5 +64,5 @@ import { apFirst as apFirst_, apSecond as apSecond_, apS as apS_, apT as apT_ } from '../Apply'; | ||
* @example | ||
* import { foldLeft } from 'fp-ts/ReadonlyArray' | ||
* import { matchLeft } from 'fp-ts/ReadonlyArray' | ||
* | ||
* const len: <A>(as: ReadonlyArray<A>) => number = foldLeft(() => 0, (_, tail) => 1 + len(tail)) | ||
* const len: <A>(as: ReadonlyArray<A>) => number = matchLeft(() => 0, (_, tail) => 1 + len(tail)) | ||
* assert.strictEqual(len([1, 2, 3]), 3) | ||
@@ -73,3 +73,3 @@ * | ||
*/ | ||
export const foldLeft = (onEmpty, onCons) => (as) => (isEmpty(as) ? onEmpty() : onCons(as[0], as.slice(1))); | ||
export const matchLeft = (onEmpty, onCons) => (as) => (isEmpty(as) ? onEmpty() : onCons(as[0], as.slice(1))); | ||
/** | ||
@@ -81,3 +81,3 @@ * Break a `ReadonlyArray` into its initial elements and the last element | ||
*/ | ||
export const foldRight = (onEmpty, onCons) => (as) => (isEmpty(as) ? onEmpty() : onCons(as.slice(0, as.length - 1), as[as.length - 1])); | ||
export const matchRight = (onEmpty, onCons) => (as) => (isEmpty(as) ? onEmpty() : onCons(as.slice(0, as.length - 1), as[as.length - 1])); | ||
// ------------------------------------------------------------------------------------- | ||
@@ -710,5 +710,6 @@ // combinators | ||
* @example | ||
* import { prependToAll } from 'fp-ts/ReadonlyArray' | ||
* import { prependAll } from 'fp-ts/ReadonlyArray' | ||
* import { pipe } from 'fp-ts/function' | ||
* | ||
* assert.deepStrictEqual(prependToAll(9)([1, 2, 3, 4]), [9, 1, 9, 2, 9, 3, 9, 4]) | ||
* assert.deepStrictEqual(pipe([1, 2, 3, 4], prependAll(9)), [9, 1, 9, 2, 9, 3, 9, 4]) | ||
* | ||
@@ -718,3 +719,3 @@ * @category combinators | ||
*/ | ||
export const prependToAll = (a) => (as) => { | ||
export const prependAll = (a) => (as) => { | ||
// tslint:disable-next-line: readonly-array | ||
@@ -741,3 +742,3 @@ const out = []; | ||
const len = as.length; | ||
return len === 0 ? as : cons(as[0])(prependToAll(a)(as.slice(1, len))); | ||
return len === 0 ? as : cons(as[0])(prependAll(a)(as.slice(1, len))); | ||
}; | ||
@@ -744,0 +745,0 @@ /** |
@@ -22,3 +22,3 @@ "use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.chunksOf = exports.splitAt = exports.chop = exports.sortBy = exports.uniq = exports.elem = exports.rotate = exports.intersperse = exports.prependToAll = exports.unzip = exports.zip = exports.zipWith = exports.sort = exports.lefts = exports.rights = exports.reverse = exports.deleteAt = exports.modifyAt = exports.updateAt = exports.insertAt = exports.findLastIndex = exports.findLastMap = exports.findLast = exports.findFirstMap = exports.findFirst = exports.findIndex = exports.dropLeftWhile = exports.dropRight = exports.dropLeft = exports.spanLeft = exports.takeLeftWhile = exports.takeRight = exports.takeLeft = exports.init = exports.tail = exports.last = exports.head = exports.snoc = exports.cons = exports.lookup = exports.isOutOfBound = exports.isNonEmpty = exports.isEmpty = exports.scanRight = exports.scanLeft = exports.foldRight = exports.foldLeft = exports.replicate = exports.range = exports.makeBy = void 0; | ||
exports.chunksOf = exports.splitAt = exports.chop = exports.sortBy = exports.uniq = exports.elem = exports.rotate = exports.intersperse = exports.prependAll = exports.unzip = exports.zip = exports.zipWith = exports.sort = exports.lefts = exports.rights = exports.reverse = exports.deleteAt = exports.modifyAt = exports.updateAt = exports.insertAt = exports.findLastIndex = exports.findLastMap = exports.findLast = exports.findFirstMap = exports.findFirst = exports.findIndex = exports.dropLeftWhile = exports.dropRight = exports.dropLeft = exports.spanLeft = exports.takeLeftWhile = exports.takeRight = exports.takeLeft = exports.init = exports.tail = exports.last = exports.head = exports.snoc = exports.cons = exports.lookup = exports.isOutOfBound = exports.isNonEmpty = exports.isEmpty = exports.scanRight = exports.scanLeft = exports.matchRight = exports.matchLeft = exports.replicate = exports.range = exports.makeBy = void 0; | ||
exports.Applicative = exports.apSecond = exports.apFirst = exports.Apply = exports.FunctorWithIndex = exports.Pointed = exports.Functor = exports.getOrd = exports.getEq = exports.getMonoid = exports.getSemigroup = exports.getShow = exports.unfold = exports.wilt = exports.wither = exports.traverseWithIndex = exports.sequence = exports.traverse = exports.reduceRightWithIndex = exports.reduceRight = exports.reduceWithIndex = exports.foldMap = exports.reduce = exports.foldMapWithIndex = exports.duplicate = exports.extend = exports.filterWithIndex = exports.partitionMapWithIndex = exports.partitionMap = exports.partitionWithIndex = exports.partition = exports.filter = exports.separate = exports.compact = exports.filterMap = exports.filterMapWithIndex = exports.mapWithIndex = exports.map = exports.chainWithIndex = exports.flatten = exports.chain = exports.ap = exports.alt = exports.altW = exports.zero = exports.of = exports.difference = exports.intersection = exports.union = exports.comprehension = void 0; | ||
@@ -92,5 +92,5 @@ exports.apT = exports.tupled = exports.ApT = exports.apS = exports.bind = exports.bindTo = exports.Do = exports.some = exports.every = exports.empty = exports.Witherable = exports.TraversableWithIndex = exports.Traversable = exports.FoldableWithIndex = exports.Foldable = exports.FilterableWithIndex = exports.Filterable = exports.Compactable = exports.Extend = exports.Alternative = exports.Alt = exports.Unfoldable = exports.chainFirst = exports.Monad = void 0; | ||
* @example | ||
* import { foldLeft } from 'fp-ts/ReadonlyArray' | ||
* import { matchLeft } from 'fp-ts/ReadonlyArray' | ||
* | ||
* const len: <A>(as: ReadonlyArray<A>) => number = foldLeft(() => 0, (_, tail) => 1 + len(tail)) | ||
* const len: <A>(as: ReadonlyArray<A>) => number = matchLeft(() => 0, (_, tail) => 1 + len(tail)) | ||
* assert.strictEqual(len([1, 2, 3]), 3) | ||
@@ -101,4 +101,4 @@ * | ||
*/ | ||
var foldLeft = function (onEmpty, onCons) { return function (as) { return (exports.isEmpty(as) ? onEmpty() : onCons(as[0], as.slice(1))); }; }; | ||
exports.foldLeft = foldLeft; | ||
var matchLeft = function (onEmpty, onCons) { return function (as) { return (exports.isEmpty(as) ? onEmpty() : onCons(as[0], as.slice(1))); }; }; | ||
exports.matchLeft = matchLeft; | ||
/** | ||
@@ -110,4 +110,4 @@ * Break a `ReadonlyArray` into its initial elements and the last element | ||
*/ | ||
var foldRight = function (onEmpty, onCons) { return function (as) { return (exports.isEmpty(as) ? onEmpty() : onCons(as.slice(0, as.length - 1), as[as.length - 1])); }; }; | ||
exports.foldRight = foldRight; | ||
var matchRight = function (onEmpty, onCons) { return function (as) { return (exports.isEmpty(as) ? onEmpty() : onCons(as.slice(0, as.length - 1), as[as.length - 1])); }; }; | ||
exports.matchRight = matchRight; | ||
// ------------------------------------------------------------------------------------- | ||
@@ -784,5 +784,6 @@ // combinators | ||
* @example | ||
* import { prependToAll } from 'fp-ts/ReadonlyArray' | ||
* import { prependAll } from 'fp-ts/ReadonlyArray' | ||
* import { pipe } from 'fp-ts/function' | ||
* | ||
* assert.deepStrictEqual(prependToAll(9)([1, 2, 3, 4]), [9, 1, 9, 2, 9, 3, 9, 4]) | ||
* assert.deepStrictEqual(pipe([1, 2, 3, 4], prependAll(9)), [9, 1, 9, 2, 9, 3, 9, 4]) | ||
* | ||
@@ -792,3 +793,3 @@ * @category combinators | ||
*/ | ||
var prependToAll = function (a) { return function (as) { | ||
var prependAll = function (a) { return function (as) { | ||
// tslint:disable-next-line: readonly-array | ||
@@ -802,3 +803,3 @@ var out = []; | ||
}; }; | ||
exports.prependToAll = prependToAll; | ||
exports.prependAll = prependAll; | ||
/** | ||
@@ -818,3 +819,3 @@ * Places an element in between members of a `ReadonlyArray` | ||
var len = as.length; | ||
return len === 0 ? as : exports.cons(as[0])(exports.prependToAll(a)(as.slice(1, len))); | ||
return len === 0 ? as : exports.cons(as[0])(exports.prependAll(a)(as.slice(1, len))); | ||
}; }; | ||
@@ -821,0 +822,0 @@ exports.intersperse = intersperse; |
@@ -249,3 +249,3 @@ /** | ||
*/ | ||
export declare const fold: <A>(S: Se.Semigroup<A>) => (fa: ReadonlyNonEmptyArray<A>) => A | ||
export declare const concatAll: <A>(S: Se.Semigroup<A>) => (fa: ReadonlyNonEmptyArray<A>) => A | ||
/** | ||
@@ -276,6 +276,6 @@ * @category combinators | ||
* @example | ||
* import { prependToAll } from 'fp-ts/ReadonlyNonEmptyArray' | ||
* import { prependAll } from 'fp-ts/ReadonlyNonEmptyArray' | ||
* import { pipe } from 'fp-ts/function' | ||
* | ||
* assert.deepStrictEqual(pipe([1, 2, 3, 4], prependToAll(9)), [9, 1, 9, 2, 9, 3, 9, 4]) | ||
* assert.deepStrictEqual(pipe([1, 2, 3, 4], prependAll(9)), [9, 1, 9, 2, 9, 3, 9, 4]) | ||
* | ||
@@ -285,3 +285,3 @@ * @category combinators | ||
*/ | ||
export declare const prependToAll: <A>(a: A) => (as: ReadonlyNonEmptyArray<A>) => ReadonlyNonEmptyArray<A> | ||
export declare const prependAll: <A>(a: A) => (as: ReadonlyNonEmptyArray<A>) => ReadonlyNonEmptyArray<A> | ||
/** | ||
@@ -288,0 +288,0 @@ * Places an element in between members of an array |
@@ -222,3 +222,3 @@ import { apS as apS_, apT as apT_ } from '../Apply'; | ||
*/ | ||
export const fold = (S) => (fa) => fa.reduce((a, acc) => S.concat(acc)(a)); | ||
export const concatAll = (S) => (fa) => fa.reduce((a, acc) => S.concat(acc)(a)); | ||
/** | ||
@@ -242,6 +242,6 @@ * @category combinators | ||
* @example | ||
* import { prependToAll } from 'fp-ts/ReadonlyNonEmptyArray' | ||
* import { prependAll } from 'fp-ts/ReadonlyNonEmptyArray' | ||
* import { pipe } from 'fp-ts/function' | ||
* | ||
* assert.deepStrictEqual(pipe([1, 2, 3, 4], prependToAll(9)), [9, 1, 9, 2, 9, 3, 9, 4]) | ||
* assert.deepStrictEqual(pipe([1, 2, 3, 4], prependAll(9)), [9, 1, 9, 2, 9, 3, 9, 4]) | ||
* | ||
@@ -251,3 +251,3 @@ * @category combinators | ||
*/ | ||
export const prependToAll = RA.prependToAll; | ||
export const prependAll = RA.prependAll; | ||
/** | ||
@@ -254,0 +254,0 @@ * Places an element in between members of an array |
@@ -22,3 +22,3 @@ "use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.getSemigroup = exports.getShow = exports.extract = exports.traverseWithIndex = exports.sequence = exports.traverse = exports.reduceRightWithIndex = exports.reduceRight = exports.reduceWithIndex = exports.reduce = exports.mapWithIndex = exports.map = exports.flatten = exports.extend = exports.duplicate = exports.chain = exports.of = exports.ap = exports.alt = exports.altW = exports.foldMap = exports.foldMapWithIndex = exports.intersperse = exports.prependToAll = exports.unzip = exports.zip = exports.zipWith = exports.fold = exports.concat = exports.filterWithIndex = exports.filter = exports.modifyAt = exports.updateAt = exports.insertAt = exports.sort = exports.init = exports.last = exports.groupBy = exports.groupSort = exports.group = exports.reverse = exports.max = exports.min = exports.tail = exports.head = exports.unsnoc = exports.uncons = exports.fromReadonlyArray = exports.snoc = exports.cons = void 0; | ||
exports.getSemigroup = exports.getShow = exports.extract = exports.traverseWithIndex = exports.sequence = exports.traverse = exports.reduceRightWithIndex = exports.reduceRight = exports.reduceWithIndex = exports.reduce = exports.mapWithIndex = exports.map = exports.flatten = exports.extend = exports.duplicate = exports.chain = exports.of = exports.ap = exports.alt = exports.altW = exports.foldMap = exports.foldMapWithIndex = exports.intersperse = exports.prependAll = exports.unzip = exports.zip = exports.zipWith = exports.concatAll = exports.concat = exports.filterWithIndex = exports.filter = exports.modifyAt = exports.updateAt = exports.insertAt = exports.sort = exports.init = exports.last = exports.groupBy = exports.groupSort = exports.group = exports.reverse = exports.max = exports.min = exports.tail = exports.head = exports.unsnoc = exports.uncons = exports.fromReadonlyArray = exports.snoc = exports.cons = void 0; | ||
exports.apT = exports.tupled = exports.ApT = exports.apS = exports.bind = exports.bindTo = exports.Do = exports.Comonad = exports.Alt = exports.TraversableWithIndex = exports.Traversable = exports.FoldableWithIndex = exports.Foldable = exports.chainFirst = exports.Monad = exports.Applicative = exports.apSecond = exports.apFirst = exports.Apply = exports.FunctorWithIndex = exports.Pointed = exports.Functor = exports.getEq = void 0; | ||
@@ -264,4 +264,6 @@ var Apply_1 = require("../Apply"); | ||
*/ | ||
var fold = function (S) { return function (fa) { return fa.reduce(function (a, acc) { return S.concat(acc)(a); }); }; }; | ||
exports.fold = fold; | ||
var concatAll = function (S) { return function (fa) { | ||
return fa.reduce(function (a, acc) { return S.concat(acc)(a); }); | ||
}; }; | ||
exports.concatAll = concatAll; | ||
/** | ||
@@ -285,6 +287,6 @@ * @category combinators | ||
* @example | ||
* import { prependToAll } from 'fp-ts/ReadonlyNonEmptyArray' | ||
* import { prependAll } from 'fp-ts/ReadonlyNonEmptyArray' | ||
* import { pipe } from 'fp-ts/function' | ||
* | ||
* assert.deepStrictEqual(pipe([1, 2, 3, 4], prependToAll(9)), [9, 1, 9, 2, 9, 3, 9, 4]) | ||
* assert.deepStrictEqual(pipe([1, 2, 3, 4], prependAll(9)), [9, 1, 9, 2, 9, 3, 9, 4]) | ||
* | ||
@@ -294,3 +296,3 @@ * @category combinators | ||
*/ | ||
exports.prependToAll = RA.prependToAll; | ||
exports.prependAll = RA.prependAll; | ||
/** | ||
@@ -297,0 +299,0 @@ * Places an element in between members of an array |
@@ -191,6 +191,6 @@ /** | ||
* @example | ||
* import { fold } from 'fp-ts/Semigroup' | ||
* import { concatAll } from 'fp-ts/Semigroup' | ||
* import * as N from 'fp-ts/number' | ||
* | ||
* const sum = fold(N.SemigroupSum)(0) | ||
* const sum = concatAll(N.SemigroupSum)(0) | ||
* | ||
@@ -202,2 +202,2 @@ * assert.deepStrictEqual(sum([1, 2, 3]), 6) | ||
*/ | ||
export declare const fold: <A>(S: Semigroup<A>) => (startWith: A) => (as: readonly A[]) => A | ||
export declare const concatAll: <A>(S: Semigroup<A>) => (startWith: A) => (as: readonly A[]) => A |
@@ -222,6 +222,6 @@ /** | ||
* @example | ||
* import { fold } from 'fp-ts/Semigroup' | ||
* import { concatAll } from 'fp-ts/Semigroup' | ||
* import * as N from 'fp-ts/number' | ||
* | ||
* const sum = fold(N.SemigroupSum)(0) | ||
* const sum = concatAll(N.SemigroupSum)(0) | ||
* | ||
@@ -233,2 +233,2 @@ * assert.deepStrictEqual(sum([1, 2, 3]), 6) | ||
*/ | ||
export const fold = (S) => (startWith) => (as) => as.reduce((a, acc) => S.concat(acc)(a), startWith); | ||
export const concatAll = (S) => (startWith) => (as) => as.reduce((a, acc) => S.concat(acc)(a), startWith); |
@@ -22,3 +22,3 @@ "use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.fold = exports.object = exports.last = exports.first = exports.intercalate = exports.tuple = exports.struct = exports.reverse = exports.constant = exports.max = exports.min = void 0; | ||
exports.concatAll = exports.object = exports.last = exports.first = exports.intercalate = exports.tuple = exports.struct = exports.reverse = exports.constant = exports.max = exports.min = void 0; | ||
/** | ||
@@ -261,6 +261,6 @@ * If a type `A` can form a `Semigroup` it has an **associative** binary operation. | ||
* @example | ||
* import { fold } from 'fp-ts/Semigroup' | ||
* import { concatAll } from 'fp-ts/Semigroup' | ||
* import * as N from 'fp-ts/number' | ||
* | ||
* const sum = fold(N.SemigroupSum)(0) | ||
* const sum = concatAll(N.SemigroupSum)(0) | ||
* | ||
@@ -272,5 +272,5 @@ * assert.deepStrictEqual(sum([1, 2, 3]), 6) | ||
*/ | ||
var fold = function (S) { return function (startWith) { return function (as) { | ||
var concatAll = function (S) { return function (startWith) { return function (as) { | ||
return as.reduce(function (a, acc) { return S.concat(acc)(a); }, startWith); | ||
}; }; }; | ||
exports.fold = fold; | ||
exports.concatAll = concatAll; |
@@ -136,3 +136,3 @@ import { apFirst as apFirst_, apSecond as apSecond_, apS as apS_, apT as apT_ } from '../Apply'; | ||
/*#__PURE__*/ | ||
E.fold((e) => left(e), right); | ||
E.match((e) => left(e), right); | ||
/** | ||
@@ -139,0 +139,0 @@ * @category constructors |
@@ -193,3 +193,3 @@ "use strict"; | ||
/*#__PURE__*/ | ||
E.fold(function (e) { return exports.left(e); }, exports.right); | ||
E.match(function (e) { return exports.left(e); }, exports.right); | ||
/** | ||
@@ -196,0 +196,0 @@ * @category constructors |
@@ -113,3 +113,3 @@ /** | ||
*/ | ||
export declare const fold: <E, B, A>( | ||
export declare const match: <E, B, A>( | ||
onLeft: (e: E) => T.Task<B>, | ||
@@ -119,3 +119,3 @@ onRight: (a: A) => T.Task<B> | ||
/** | ||
* Less strict version of [`fold`](#fold). | ||
* Less strict version of [`match`](#match). | ||
* | ||
@@ -125,3 +125,3 @@ * @category destructors | ||
*/ | ||
export declare const foldW: <E, B, A, C>( | ||
export declare const matchW: <E, B, A, C>( | ||
onLeft: (e: E) => Task<B>, | ||
@@ -128,0 +128,0 @@ onRight: (a: A) => Task<C> |
@@ -105,7 +105,7 @@ import { apFirst as apFirst_, apSecond as apSecond_, apS as apS_, apT as apT_, ap as ap_ } from '../Apply'; | ||
*/ | ||
export const fold = | ||
export const match = | ||
/*#__PURE__*/ | ||
ET.fold(T.Monad); | ||
ET.match(T.Monad); | ||
/** | ||
* Less strict version of [`fold`](#fold). | ||
* Less strict version of [`match`](#match). | ||
* | ||
@@ -115,3 +115,3 @@ * @category destructors | ||
*/ | ||
export const foldW = fold; | ||
export const matchW = match; | ||
/** | ||
@@ -118,0 +118,0 @@ * @category destructors |
@@ -33,3 +33,3 @@ "use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.Bifunctor = exports.chainFirstW = exports.chainFirst = exports.ApplicativeSeq = exports.ApplySeq = exports.Monad = exports.ApplicativePar = exports.apSecond = exports.apFirst = exports.ApplyPar = exports.Pointed = exports.Functor = exports.getFilterable = exports.getCompactable = exports.getAltTaskValidation = exports.getApplicativeTaskValidation = exports.of = exports.altW = exports.alt = exports.flatten = exports.chainW = exports.chain = exports.apW = exports.ap = exports.mapLeft = exports.bimap = exports.map = exports.chainIOEitherK = exports.chainIOEitherKW = exports.fromIOEitherK = exports.tryCatchK = exports.swap = exports.orElseW = exports.orElse = exports.toUnion = exports.getOrElseW = exports.getOrElse = exports.foldW = exports.fold = exports.fromTask = exports.fromIO = exports.tryCatch = exports.fromEither = exports.fromIOEither = exports.leftIO = exports.rightIO = exports.leftTask = exports.rightTask = exports.right = exports.left = void 0; | ||
exports.Bifunctor = exports.chainFirstW = exports.chainFirst = exports.ApplicativeSeq = exports.ApplySeq = exports.Monad = exports.ApplicativePar = exports.apSecond = exports.apFirst = exports.ApplyPar = exports.Pointed = exports.Functor = exports.getFilterable = exports.getCompactable = exports.getAltTaskValidation = exports.getApplicativeTaskValidation = exports.of = exports.altW = exports.alt = exports.flatten = exports.chainW = exports.chain = exports.apW = exports.ap = exports.mapLeft = exports.bimap = exports.map = exports.chainIOEitherK = exports.chainIOEitherKW = exports.fromIOEitherK = exports.tryCatchK = exports.swap = exports.orElseW = exports.orElse = exports.toUnion = exports.getOrElseW = exports.getOrElse = exports.matchW = exports.match = exports.fromTask = exports.fromIO = exports.tryCatch = exports.fromEither = exports.fromIOEither = exports.leftIO = exports.rightIO = exports.leftTask = exports.rightTask = exports.right = exports.left = void 0; | ||
exports.sequenceReadonlyArraySeq = exports.traverseReadonlyArraySeq = exports.traverseReadonlyArrayWithIndexSeq = exports.sequenceReadonlyArray = exports.traverseReadonlyArray = exports.traverseReadonlyArrayWithIndex = exports.apTW = exports.apT = exports.tupled = exports.ApT = exports.apSW = exports.apS = exports.bindW = exports.bind = exports.bindTo = exports.Do = exports.bracket = exports.taskify = exports.fromEitherK = exports.filterOrElseW = exports.filterOrElse = exports.fromPredicate = exports.chainEitherKW = exports.chainEitherK = exports.chainOptionK = exports.fromOptionK = exports.fromOption = exports.FromEither = exports.FromTask = exports.FromIO = exports.Alt = void 0; | ||
@@ -141,7 +141,7 @@ var Apply_1 = require("../Apply"); | ||
*/ | ||
exports.fold = | ||
exports.match = | ||
/*#__PURE__*/ | ||
ET.fold(T.Monad); | ||
ET.match(T.Monad); | ||
/** | ||
* Less strict version of [`fold`](#fold). | ||
* Less strict version of [`match`](#match). | ||
* | ||
@@ -151,3 +151,3 @@ * @category destructors | ||
*/ | ||
exports.foldW = exports.fold; | ||
exports.matchW = exports.match; | ||
/** | ||
@@ -154,0 +154,0 @@ * @category destructors |
@@ -83,3 +83,3 @@ /** | ||
*/ | ||
export declare const fold: <B, A>( | ||
export declare const match: <B, A>( | ||
onNone: () => T.Task<B>, | ||
@@ -89,3 +89,3 @@ onSome: (a: A) => T.Task<B> | ||
/** | ||
* Less strict version of [`fold`](#fold). | ||
* Less strict version of [`match`](#match). | ||
* | ||
@@ -95,3 +95,3 @@ * @category destructors | ||
*/ | ||
export declare const foldW: <B, A, C>( | ||
export declare const matchW: <B, A, C>( | ||
onNone: () => T.Task<B>, | ||
@@ -98,0 +98,0 @@ onSome: (a: A) => T.Task<C> |
@@ -83,7 +83,7 @@ import { apFirst as apFirst_, apS as apS_, apSecond as apSecond_, apT as apT_ } from '../Apply'; | ||
*/ | ||
export const fold = | ||
export const match = | ||
/*#__PURE__*/ | ||
OT.fold(T.Monad); | ||
OT.match(T.Monad); | ||
/** | ||
* Less strict version of [`fold`](#fold). | ||
* Less strict version of [`match`](#match). | ||
* | ||
@@ -93,3 +93,3 @@ * @category destructors | ||
*/ | ||
export const foldW = fold; | ||
export const matchW = match; | ||
/** | ||
@@ -96,0 +96,0 @@ * @category destructors |
@@ -33,3 +33,3 @@ "use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.bindTo = exports.Do = exports.Filterable = exports.Compactable = exports.FromTask = exports.FromIO = exports.Alternative = exports.Alt = exports.chainFirst = exports.ApplicativeSeq = exports.ApplySeq = exports.Monad = exports.ApplicativePar = exports.apSecond = exports.apFirst = exports.ApplyPar = exports.Pointed = exports.Functor = exports.partitionMap = exports.partition = exports.filterMap = exports.filter = exports.separate = exports.compact = exports.zero = exports.altW = exports.alt = exports.flatten = exports.chain = exports.of = exports.ap = exports.map = exports.chainOptionK = exports.fromOptionK = exports.chainNullableK = exports.fromNullableK = exports.tryCatchK = exports.getOrElseW = exports.getOrElse = exports.foldW = exports.fold = exports.fromTask = exports.fromIO = exports.tryCatch = exports.fromEither = exports.fromPredicate = exports.fromNullable = exports.fromOption = exports.none = exports.some = void 0; | ||
exports.bindTo = exports.Do = exports.Filterable = exports.Compactable = exports.FromTask = exports.FromIO = exports.Alternative = exports.Alt = exports.chainFirst = exports.ApplicativeSeq = exports.ApplySeq = exports.Monad = exports.ApplicativePar = exports.apSecond = exports.apFirst = exports.ApplyPar = exports.Pointed = exports.Functor = exports.partitionMap = exports.partition = exports.filterMap = exports.filter = exports.separate = exports.compact = exports.zero = exports.altW = exports.alt = exports.flatten = exports.chain = exports.of = exports.ap = exports.map = exports.chainOptionK = exports.fromOptionK = exports.chainNullableK = exports.fromNullableK = exports.tryCatchK = exports.getOrElseW = exports.getOrElse = exports.matchW = exports.match = exports.fromTask = exports.fromIO = exports.tryCatch = exports.fromEither = exports.fromPredicate = exports.fromNullable = exports.fromOption = exports.none = exports.some = void 0; | ||
exports.sequenceReadonlyArraySeq = exports.traverseReadonlyArraySeq = exports.traverseReadonlyArrayWithIndexSeq = exports.sequenceReadonlyArray = exports.traverseReadonlyArray = exports.traverseReadonlyArrayWithIndex = exports.apT = exports.tupled = exports.ApT = exports.apS = exports.bind = void 0; | ||
@@ -122,7 +122,7 @@ var Apply_1 = require("../Apply"); | ||
*/ | ||
exports.fold = | ||
exports.match = | ||
/*#__PURE__*/ | ||
OT.fold(T.Monad); | ||
OT.match(T.Monad); | ||
/** | ||
* Less strict version of [`fold`](#fold). | ||
* Less strict version of [`match`](#match). | ||
* | ||
@@ -132,3 +132,3 @@ * @category destructors | ||
*/ | ||
exports.foldW = exports.fold; | ||
exports.matchW = exports.match; | ||
/** | ||
@@ -135,0 +135,0 @@ * @category destructors |
@@ -84,3 +84,3 @@ /** | ||
*/ | ||
export declare const fold: <E, B, A>( | ||
export declare const match: <E, B, A>( | ||
onLeft: (e: E) => T.Task<B>, | ||
@@ -91,3 +91,3 @@ onRight: (a: A) => T.Task<B>, | ||
/** | ||
* Less strict version of [`fold`](#fold). | ||
* Less strict version of [`match`](#match). | ||
* | ||
@@ -97,3 +97,3 @@ * @category destructors | ||
*/ | ||
export declare const foldW: <E, B, A, C, D>( | ||
export declare const matchW: <E, B, A, C, D>( | ||
onLeft: (e: E) => T.Task<B>, | ||
@@ -100,0 +100,0 @@ onRight: (a: A) => T.Task<C>, |
@@ -83,7 +83,7 @@ import { fromOption as fromOption_, fromOptionK as fromOptionK_, fromPredicate as fromPredicate_ } from '../FromEither'; | ||
*/ | ||
export const fold = | ||
export const match = | ||
/*#__PURE__*/ | ||
TT.fold(T.Monad); | ||
TT.match(T.Monad); | ||
/** | ||
* Less strict version of [`fold`](#fold). | ||
* Less strict version of [`match`](#match). | ||
* | ||
@@ -93,3 +93,3 @@ * @category destructors | ||
*/ | ||
export const foldW = fold; | ||
export const matchW = match; | ||
// ------------------------------------------------------------------------------------- | ||
@@ -96,0 +96,0 @@ // combinators |
@@ -22,3 +22,3 @@ "use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.toTuple2 = exports.FromTask = exports.FromIO = exports.fromPredicate = exports.fromOptionK = exports.fromOption = exports.FromEither = exports.Bifunctor = exports.Pointed = exports.Functor = exports.getMonad = exports.getApplicative = exports.getApply = exports.of = exports.mapLeft = exports.bimap = exports.map = exports.swap = exports.foldW = exports.fold = exports.fromTask = exports.fromIO = exports.fromEither = exports.fromIOEither = exports.leftIO = exports.rightIO = exports.leftTask = exports.rightTask = exports.both = exports.right = exports.left = void 0; | ||
exports.toTuple2 = exports.FromTask = exports.FromIO = exports.fromPredicate = exports.fromOptionK = exports.fromOption = exports.FromEither = exports.Bifunctor = exports.Pointed = exports.Functor = exports.getMonad = exports.getApplicative = exports.getApply = exports.of = exports.mapLeft = exports.bimap = exports.map = exports.swap = exports.matchW = exports.match = exports.fromTask = exports.fromIO = exports.fromEither = exports.fromIOEither = exports.leftIO = exports.rightIO = exports.leftTask = exports.rightTask = exports.both = exports.right = exports.left = void 0; | ||
var FromEither_1 = require("../FromEither"); | ||
@@ -106,7 +106,7 @@ var function_1 = require("../function"); | ||
*/ | ||
exports.fold = | ||
exports.match = | ||
/*#__PURE__*/ | ||
TT.fold(T.Monad); | ||
TT.match(T.Monad); | ||
/** | ||
* Less strict version of [`fold`](#fold). | ||
* Less strict version of [`match`](#match). | ||
* | ||
@@ -116,3 +116,3 @@ * @category destructors | ||
*/ | ||
exports.foldW = exports.fold; | ||
exports.matchW = exports.match; | ||
// ------------------------------------------------------------------------------------- | ||
@@ -119,0 +119,0 @@ // combinators |
@@ -107,3 +107,3 @@ /** | ||
/** | ||
* Less strict version of [`fold`](#fold). | ||
* Less strict version of [`match`](#match). | ||
* | ||
@@ -113,3 +113,3 @@ * @category destructors | ||
*/ | ||
export declare const foldW: <E, B, A, C, D>( | ||
export declare const matchW: <E, B, A, C, D>( | ||
onLeft: (e: E) => B, | ||
@@ -123,3 +123,3 @@ onRight: (a: A) => C, | ||
*/ | ||
export declare const fold: <E, B, A>( | ||
export declare const match: <E, B, A>( | ||
onLeft: (e: E) => B, | ||
@@ -126,0 +126,0 @@ onRight: (a: A) => B, |
@@ -74,3 +74,3 @@ import { mapLeftDefault } from '../Bifunctor'; | ||
/** | ||
* Less strict version of [`fold`](#fold). | ||
* Less strict version of [`match`](#match). | ||
* | ||
@@ -80,3 +80,3 @@ * @category destructors | ||
*/ | ||
export const foldW = (onLeft, onRight, onBoth) => (fa) => { | ||
export const matchW = (onLeft, onRight, onBoth) => (fa) => { | ||
switch (fa._tag) { | ||
@@ -95,3 +95,3 @@ case 'Left': | ||
*/ | ||
export const fold = foldW; | ||
export const match = matchW; | ||
// ------------------------------------------------------------------------------------- | ||
@@ -104,3 +104,3 @@ // combinators | ||
*/ | ||
export const swap = fold(right, left, (e, a) => both(a, e)); | ||
export const swap = match(right, left, (e, a) => both(a, e)); | ||
// ------------------------------------------------------------------------------------- | ||
@@ -200,3 +200,3 @@ // guards | ||
export const getShow = (SE, SA) => ({ | ||
show: fold((l) => `left(${SE.show(l)})`, (a) => `right(${SA.show(a)})`, (l, a) => `both(${SE.show(l)}, ${SA.show(a)})`) | ||
show: match((l) => `left(${SE.show(l)})`, (a) => `right(${SA.show(a)})`, (l, a) => `both(${SE.show(l)}, ${SA.show(a)})`) | ||
}); | ||
@@ -203,0 +203,0 @@ /** |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.getRightOnly = exports.getLeftOnly = exports.getRight = exports.getLeft = exports.toTuple2 = exports.Traversable = exports.Foldable = exports.Bifunctor = exports.fromPredicate = exports.fromOptionK = exports.fromOption = exports.FromEither = exports.getMonad = exports.getApplicative = exports.getApply = exports.Pointed = exports.Functor = exports.getSemigroup = exports.getEq = exports.getShow = exports.of = exports.sequence = exports.traverse = exports.reduceRight = exports.foldMap = exports.reduce = exports.map = exports.mapLeft = exports.bimap = exports.isBoth = exports.isRight = exports.isLeft = exports.swap = exports.fold = exports.foldW = exports.fromOptions = exports.rightOrBoth = exports.leftOrBoth = exports.both = exports.right = exports.left = void 0; | ||
exports.getRightOnly = exports.getLeftOnly = exports.getRight = exports.getLeft = exports.toTuple2 = exports.Traversable = exports.Foldable = exports.Bifunctor = exports.fromPredicate = exports.fromOptionK = exports.fromOption = exports.FromEither = exports.getMonad = exports.getApplicative = exports.getApply = exports.Pointed = exports.Functor = exports.getSemigroup = exports.getEq = exports.getShow = exports.of = exports.sequence = exports.traverse = exports.reduceRight = exports.foldMap = exports.reduce = exports.map = exports.mapLeft = exports.bimap = exports.isBoth = exports.isRight = exports.isLeft = exports.swap = exports.match = exports.matchW = exports.fromOptions = exports.rightOrBoth = exports.leftOrBoth = exports.both = exports.right = exports.left = void 0; | ||
var Bifunctor_1 = require("../Bifunctor"); | ||
@@ -89,3 +89,3 @@ var Eq_1 = require("../Eq"); | ||
/** | ||
* Less strict version of [`fold`](#fold). | ||
* Less strict version of [`match`](#match). | ||
* | ||
@@ -95,3 +95,3 @@ * @category destructors | ||
*/ | ||
var foldW = function (onLeft, onRight, onBoth) { return function (fa) { | ||
var matchW = function (onLeft, onRight, onBoth) { return function (fa) { | ||
switch (fa._tag) { | ||
@@ -106,3 +106,3 @@ case 'Left': | ||
}; }; | ||
exports.foldW = foldW; | ||
exports.matchW = matchW; | ||
/** | ||
@@ -112,3 +112,3 @@ * @category destructors | ||
*/ | ||
exports.fold = exports.foldW; | ||
exports.match = exports.matchW; | ||
// ------------------------------------------------------------------------------------- | ||
@@ -121,3 +121,3 @@ // combinators | ||
*/ | ||
exports.swap = exports.fold(exports.right, exports.left, function (e, a) { return exports.both(a, e); }); | ||
exports.swap = exports.match(exports.right, exports.left, function (e, a) { return exports.both(a, e); }); | ||
// ------------------------------------------------------------------------------------- | ||
@@ -239,3 +239,3 @@ // guards | ||
var getShow = function (SE, SA) { return ({ | ||
show: exports.fold(function (l) { return "left(" + SE.show(l) + ")"; }, function (a) { return "right(" + SA.show(a) + ")"; }, function (l, a) { return "both(" + SE.show(l) + ", " + SA.show(a) + ")"; }) | ||
show: exports.match(function (l) { return "left(" + SE.show(l) + ")"; }, function (a) { return "right(" + SA.show(a) + ")"; }, function (l, a) { return "both(" + SE.show(l) + ", " + SA.show(a) + ")"; }) | ||
}); }; | ||
@@ -242,0 +242,0 @@ exports.getShow = getShow; |
@@ -116,3 +116,3 @@ /** | ||
*/ | ||
export declare function fold<M extends URIS2>( | ||
export declare function match<M extends URIS2>( | ||
M: Monad2<M> | ||
@@ -124,3 +124,3 @@ ): <E, R, B, A>( | ||
) => (ma: Kind2<M, R, These<E, A>>) => Kind2<M, R, B> | ||
export declare function fold<M extends URIS>( | ||
export declare function match<M extends URIS>( | ||
M: Monad1<M> | ||
@@ -132,3 +132,3 @@ ): <E, B, A>( | ||
) => (ma: Kind<M, These<E, A>>) => Kind<M, B> | ||
export declare function fold<M>( | ||
export declare function match<M>( | ||
M: Monad<M> | ||
@@ -135,0 +135,0 @@ ): <E, B, A>( |
@@ -31,3 +31,3 @@ /** | ||
const _left = left(M); | ||
return (f) => (ma) => pipe(ma, M.chain(T.fold(_left, f, (e1, a) => pipe(f(a), M.map(T.fold((e2) => T.left(S.concat(e2)(e1)), (b) => T.both(e1, b), (e2, b) => T.both(S.concat(e2)(e1), b))))))); | ||
return (f) => (ma) => pipe(ma, M.chain(T.match(_left, f, (e1, a) => pipe(f(a), M.map(T.match((e2) => T.left(S.concat(e2)(e1)), (b) => T.both(e1, b), (e2, b) => T.both(S.concat(e2)(e1), b))))))); | ||
} | ||
@@ -40,4 +40,4 @@ export function bimap(F) { | ||
} | ||
export function fold(M) { | ||
return (onLeft, onRight, onBoth) => M.chain(T.fold(onLeft, onRight, onBoth)); | ||
export function match(M) { | ||
return (onLeft, onRight, onBoth) => M.chain(T.match(onLeft, onRight, onBoth)); | ||
} | ||
@@ -44,0 +44,0 @@ export function swap(F) { |
@@ -25,3 +25,3 @@ "use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.toTuple2 = exports.swap = exports.fold = exports.mapLeft = exports.bimap = exports.chain = exports.ap = exports.map = exports.leftF = exports.rightF = exports.both = exports.left = exports.right = void 0; | ||
exports.toTuple2 = exports.swap = exports.match = exports.mapLeft = exports.bimap = exports.chain = exports.ap = exports.map = exports.leftF = exports.rightF = exports.both = exports.left = exports.right = void 0; | ||
var Apply_1 = require("../Apply"); | ||
@@ -62,4 +62,4 @@ var function_1 = require("../function"); | ||
return function (f) { return function (ma) { | ||
return function_1.pipe(ma, M.chain(T.fold(_left, f, function (e1, a) { | ||
return function_1.pipe(f(a), M.map(T.fold(function (e2) { return T.left(S.concat(e2)(e1)); }, function (b) { return T.both(e1, b); }, function (e2, b) { return T.both(S.concat(e2)(e1), b); }))); | ||
return function_1.pipe(ma, M.chain(T.match(_left, f, function (e1, a) { | ||
return function_1.pipe(f(a), M.map(T.match(function (e2) { return T.left(S.concat(e2)(e1)); }, function (b) { return T.both(e1, b); }, function (e2, b) { return T.both(S.concat(e2)(e1), b); }))); | ||
}))); | ||
@@ -77,6 +77,6 @@ }; }; | ||
exports.mapLeft = mapLeft; | ||
function fold(M) { | ||
return function (onLeft, onRight, onBoth) { return M.chain(T.fold(onLeft, onRight, onBoth)); }; | ||
function match(M) { | ||
return function (onLeft, onRight, onBoth) { return M.chain(T.match(onLeft, onRight, onBoth)); }; | ||
} | ||
exports.fold = fold; | ||
exports.match = match; | ||
function swap(F) { | ||
@@ -83,0 +83,0 @@ return F.map(T.swap); |
@@ -134,3 +134,3 @@ /** | ||
* @example | ||
* import { fold, make } from 'fp-ts/Tree' | ||
* import { match, make } from 'fp-ts/Tree' | ||
* import { pipe } from 'fp-ts/function' | ||
@@ -143,9 +143,9 @@ * | ||
* // Sum the values in a tree: | ||
* assert.deepStrictEqual(pipe(t, fold((a, bs) => a + sum(bs))), 6) | ||
* assert.deepStrictEqual(pipe(t, match((a, bs) => a + sum(bs))), 6) | ||
* | ||
* // Find the maximum value in the tree: | ||
* assert.deepStrictEqual(pipe(t, fold((a, bs) => bs.reduce((b, acc) => Math.max(b, acc), a))), 3) | ||
* assert.deepStrictEqual(pipe(t, match((a, bs) => bs.reduce((b, acc) => Math.max(b, acc), a))), 3) | ||
* | ||
* // Count the number of leaves in the tree: | ||
* assert.deepStrictEqual(pipe(t, fold((_, bs) => (bs.length === 0 ? 1 : sum(bs)))), 2) | ||
* assert.deepStrictEqual(pipe(t, match((_, bs) => (bs.length === 0 ? 1 : sum(bs)))), 2) | ||
* | ||
@@ -155,3 +155,3 @@ * @category destructors | ||
*/ | ||
export declare const fold: <A, B>(f: (a: A, bs: readonly B[]) => B) => (tree: Tree<A>) => B | ||
export declare const match: <A, B>(f: (a: A, bs: readonly B[]) => B) => (tree: Tree<A>) => B | ||
/** | ||
@@ -158,0 +158,0 @@ * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types |
@@ -57,3 +57,3 @@ import { apFirst as apFirst_, apS as apS_, apSecond as apSecond_, apT as apT_ } from '../Apply'; | ||
* @example | ||
* import { fold, make } from 'fp-ts/Tree' | ||
* import { match, make } from 'fp-ts/Tree' | ||
* import { pipe } from 'fp-ts/function' | ||
@@ -66,9 +66,9 @@ * | ||
* // Sum the values in a tree: | ||
* assert.deepStrictEqual(pipe(t, fold((a, bs) => a + sum(bs))), 6) | ||
* assert.deepStrictEqual(pipe(t, match((a, bs) => a + sum(bs))), 6) | ||
* | ||
* // Find the maximum value in the tree: | ||
* assert.deepStrictEqual(pipe(t, fold((a, bs) => bs.reduce((b, acc) => Math.max(b, acc), a))), 3) | ||
* assert.deepStrictEqual(pipe(t, match((a, bs) => bs.reduce((b, acc) => Math.max(b, acc), a))), 3) | ||
* | ||
* // Count the number of leaves in the tree: | ||
* assert.deepStrictEqual(pipe(t, fold((_, bs) => (bs.length === 0 ? 1 : sum(bs)))), 2) | ||
* assert.deepStrictEqual(pipe(t, match((_, bs) => (bs.length === 0 ? 1 : sum(bs)))), 2) | ||
* | ||
@@ -78,3 +78,3 @@ * @category destructors | ||
*/ | ||
export const fold = (f) => { | ||
export const match = (f) => { | ||
const go = (tree) => f(tree.value, tree.forest.map(go)); | ||
@@ -81,0 +81,0 @@ return go; |
@@ -22,3 +22,3 @@ "use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.apT = exports.tupled = exports.ApT = exports.apS = exports.bind = exports.bindTo = exports.Do = exports.drawTree = exports.drawForest = exports.elem = exports.Comonad = exports.Traversable = exports.Foldable = exports.chainFirst = exports.Monad = exports.Applicative = exports.apSecond = exports.apFirst = exports.Apply = exports.Pointed = exports.Functor = exports.getEq = exports.getShow = exports.of = exports.sequence = exports.traverse = exports.extract = exports.reduceRight = exports.foldMap = exports.reduce = exports.flatten = exports.duplicate = exports.extend = exports.chain = exports.ap = exports.map = exports.fold = exports.unfoldForestM = exports.unfoldTreeM = exports.unfoldForest = exports.unfoldTree = exports.make = void 0; | ||
exports.apT = exports.tupled = exports.ApT = exports.apS = exports.bind = exports.bindTo = exports.Do = exports.drawTree = exports.drawForest = exports.elem = exports.Comonad = exports.Traversable = exports.Foldable = exports.chainFirst = exports.Monad = exports.Applicative = exports.apSecond = exports.apFirst = exports.Apply = exports.Pointed = exports.Functor = exports.getEq = exports.getShow = exports.of = exports.sequence = exports.traverse = exports.extract = exports.reduceRight = exports.foldMap = exports.reduce = exports.flatten = exports.duplicate = exports.extend = exports.chain = exports.ap = exports.map = exports.match = exports.unfoldForestM = exports.unfoldTreeM = exports.unfoldForest = exports.unfoldTree = exports.make = void 0; | ||
var Apply_1 = require("../Apply"); | ||
@@ -95,3 +95,3 @@ var Eq_1 = require("../Eq"); | ||
* @example | ||
* import { fold, make } from 'fp-ts/Tree' | ||
* import { match, make } from 'fp-ts/Tree' | ||
* import { pipe } from 'fp-ts/function' | ||
@@ -104,9 +104,9 @@ * | ||
* // Sum the values in a tree: | ||
* assert.deepStrictEqual(pipe(t, fold((a, bs) => a + sum(bs))), 6) | ||
* assert.deepStrictEqual(pipe(t, match((a, bs) => a + sum(bs))), 6) | ||
* | ||
* // Find the maximum value in the tree: | ||
* assert.deepStrictEqual(pipe(t, fold((a, bs) => bs.reduce((b, acc) => Math.max(b, acc), a))), 3) | ||
* assert.deepStrictEqual(pipe(t, match((a, bs) => bs.reduce((b, acc) => Math.max(b, acc), a))), 3) | ||
* | ||
* // Count the number of leaves in the tree: | ||
* assert.deepStrictEqual(pipe(t, fold((_, bs) => (bs.length === 0 ? 1 : sum(bs)))), 2) | ||
* assert.deepStrictEqual(pipe(t, match((_, bs) => (bs.length === 0 ? 1 : sum(bs)))), 2) | ||
* | ||
@@ -116,7 +116,7 @@ * @category destructors | ||
*/ | ||
var fold = function (f) { | ||
var match = function (f) { | ||
var go = function (tree) { return f(tree.value, tree.forest.map(go)); }; | ||
return go; | ||
}; | ||
exports.fold = fold; | ||
exports.match = match; | ||
// ------------------------------------------------------------------------------------- | ||
@@ -123,0 +123,0 @@ // type class members |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
1459657
51084