@mikuroxina/mini-fn
Advanced tools
Comparing version 5.5.1 to 5.6.0
@@ -22,2 +22,3 @@ import "./_dnt.polyfills.js"; | ||
export * as List from "./src/list.js"; | ||
export * as Map from "./src/map.js"; | ||
export * as Number from "./src/number.js"; | ||
@@ -32,2 +33,3 @@ export * as Optical from "./src/optical.js"; | ||
export * as MonadReader from "./src/reader/monad.js"; | ||
export * as Record from "./src/record.js"; | ||
export * as Result from "./src/result.js"; | ||
@@ -34,0 +36,0 @@ export * as Reverse from "./src/reverse.js"; |
@@ -22,2 +22,3 @@ import "./_dnt.polyfills.js"; | ||
export * as List from "./src/list.js"; | ||
export * as Map from "./src/map.js"; | ||
export * as Number from "./src/number.js"; | ||
@@ -32,2 +33,3 @@ export * as Optical from "./src/optical.js"; | ||
export * as MonadReader from "./src/reader/monad.js"; | ||
export * as Record from "./src/record.js"; | ||
export * as Result from "./src/result.js"; | ||
@@ -34,0 +36,0 @@ export * as Reverse from "./src/reverse.js"; |
@@ -146,2 +146,9 @@ import type { Get1, Hkt1 } from "./hkt.js"; | ||
/** | ||
* Creates a new list with a finite iterable object. | ||
* | ||
* @param iterable - The finite iterable object such as `Array` or `Map`. | ||
* @returns The list of items from the iterable. | ||
*/ | ||
export declare const fromIterable: <T>(iterable: Iterable<T>) => List<T>; | ||
/** | ||
* Concatenates two lists. | ||
@@ -148,0 +155,0 @@ * |
import { cat } from "./cat.js"; | ||
import * as Option from "./option.js"; | ||
import { isNone } from "./option.js"; | ||
import { andThen } from "./ordering.js"; | ||
@@ -11,4 +12,5 @@ import { liftA2 } from "./type-class/applicative.js"; | ||
export const partialEquality = (equalityT) => { | ||
const self = (l, r) => Option.partialEq(equalityT).eq(l.current(), r.current()) && | ||
self(l.rest(), r.rest()); | ||
const self = (l, r) => (isNone(l.current()) && isNone(r.current())) || | ||
(Option.partialEq(equalityT).eq(l.current(), r.current()) && | ||
self(l.rest(), r.rest())); | ||
return self; | ||
@@ -18,4 +20,5 @@ }; | ||
export const equality = (equalityT) => { | ||
const self = (l, r) => Option.eq(equalityT).eq(l.current(), r.current()) && | ||
self(l.rest(), r.rest()); | ||
const self = (l, r) => (isNone(l.current()) && isNone(r.current())) || | ||
(Option.eq(equalityT).eq(l.current(), r.current()) && | ||
self(l.rest(), r.rest())); | ||
return self; | ||
@@ -167,2 +170,9 @@ }; | ||
/** | ||
* Creates a new list with a finite iterable object. | ||
* | ||
* @param iterable - The finite iterable object such as `Array` or `Map`. | ||
* @returns The list of items from the iterable. | ||
*/ | ||
export const fromIterable = (iterable) => fromArray([...iterable]); | ||
/** | ||
* Concatenates two lists. | ||
@@ -169,0 +179,0 @@ * |
@@ -109,7 +109,7 @@ import { newPrism, newPrismSimple } from "./optical/prism.js"; | ||
}; | ||
export const partialEquality = (equalityT) => (optA, optB) => (isSome(optA) && isSome(optB) && equalityT.eq(optA[1], optB[1])) || | ||
(isNone(optA) && isNone(optB)); | ||
export const partialEquality = (equalityT) => (optA, optB) => (isNone(optA) && isNone(optB)) || | ||
(isSome(optA) && isSome(optB) && equalityT.eq(optA[1], optB[1])); | ||
export const partialEq = fromPartialEquality(partialEquality); | ||
export const equality = (equalityT) => (optA, optB) => (isSome(optA) && isSome(optB) && equalityT.eq(optA[1], optB[1])) || | ||
(isNone(optA) && isNone(optB)); | ||
export const equality = (equalityT) => (optA, optB) => (isNone(optA) && isNone(optB)) || | ||
(isSome(optA) && isSome(optB) && equalityT.eq(optA[1], optB[1])); | ||
export const eq = fromEquality(equality); | ||
@@ -116,0 +116,0 @@ export const partialCmp = (order) => (l, r) => { |
@@ -5,3 +5,3 @@ { | ||
"name": "@mikuroxina/mini-fn", | ||
"version": "5.5.1", | ||
"version": "5.6.0", | ||
"description": "The minimal functional programming library.", | ||
@@ -8,0 +8,0 @@ "license": "Apache-2.0", |
@@ -22,2 +22,3 @@ import "./_dnt.polyfills.js"; | ||
export * as List from "./src/list.js"; | ||
export * as Map from "./src/map.js"; | ||
export * as Number from "./src/number.js"; | ||
@@ -32,2 +33,3 @@ export * as Optical from "./src/optical.js"; | ||
export * as MonadReader from "./src/reader/monad.js"; | ||
export * as Record from "./src/record.js"; | ||
export * as Result from "./src/result.js"; | ||
@@ -34,0 +36,0 @@ export * as Reverse from "./src/reverse.js"; |
@@ -26,3 +26,4 @@ "use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.Zipper = exports.Yoneda = exports.Writer = exports.TypeClass = exports.TupleN = exports.Tuple = exports.Trans = exports.These = exports.Tagged = exports.String = exports.ComonadStore = exports.Store = exports.MonadWriter = exports.StateMonad = exports.State = exports.Star = exports.FingerTree = exports.Seq = exports.Reverse = exports.Result = exports.MonadReader = exports.Reader = exports.MonadPromise = exports.Promise = exports.Predicate = exports.Ordering = exports.Option = exports.Optical = exports.Number = exports.List = exports.Lazy = exports.Kleisli = exports.Identity = exports.Hkt = exports.Func = exports.Frozen = exports.MonadFree = exports.Free = exports.Dual = exports.Curry = exports.Coyoneda = exports.MonadCont = exports.Cont = exports.Const = exports.ComonadCofree = exports.Cofree = exports.Cat = exports.Bool = exports.Array = void 0; | ||
exports.Yoneda = exports.Writer = exports.TypeClass = exports.TupleN = exports.Tuple = exports.Trans = exports.These = exports.Tagged = exports.String = exports.ComonadStore = exports.Store = exports.MonadWriter = exports.StateMonad = exports.State = exports.Star = exports.FingerTree = exports.Seq = exports.Reverse = exports.Result = exports.Record = exports.MonadReader = exports.Reader = exports.MonadPromise = exports.Promise = exports.Predicate = exports.Ordering = exports.Option = exports.Optical = exports.Number = exports.Map = exports.List = exports.Lazy = exports.Kleisli = exports.Identity = exports.Hkt = exports.Func = exports.Frozen = exports.MonadFree = exports.Free = exports.Dual = exports.Curry = exports.Coyoneda = exports.MonadCont = exports.Cont = exports.Const = exports.ComonadCofree = exports.Cofree = exports.Cat = exports.Bool = exports.Array = void 0; | ||
exports.Zipper = void 0; | ||
require("./_dnt.polyfills.js"); | ||
@@ -49,2 +50,3 @@ exports.Array = __importStar(require("./src/array.js")); | ||
exports.List = __importStar(require("./src/list.js")); | ||
exports.Map = __importStar(require("./src/map.js")); | ||
exports.Number = __importStar(require("./src/number.js")); | ||
@@ -59,2 +61,3 @@ exports.Optical = __importStar(require("./src/optical.js")); | ||
exports.MonadReader = __importStar(require("./src/reader/monad.js")); | ||
exports.Record = __importStar(require("./src/record.js")); | ||
exports.Result = __importStar(require("./src/result.js")); | ||
@@ -61,0 +64,0 @@ exports.Reverse = __importStar(require("./src/reverse.js")); |
@@ -146,2 +146,9 @@ import type { Get1, Hkt1 } from "./hkt.js"; | ||
/** | ||
* Creates a new list with a finite iterable object. | ||
* | ||
* @param iterable - The finite iterable object such as `Array` or `Map`. | ||
* @returns The list of items from the iterable. | ||
*/ | ||
export declare const fromIterable: <T>(iterable: Iterable<T>) => List<T>; | ||
/** | ||
* Concatenates two lists. | ||
@@ -148,0 +155,0 @@ * |
@@ -26,6 +26,7 @@ "use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.unzip = exports.zipWith = exports.zip4 = exports.zip3 = exports.zip = exports.init = exports.reverse = exports.tail = exports.last = exports.head = exports.scanL = exports.flatMap = exports.concatMap = exports.concat = exports.build = exports.length = exports.toString = exports.foldR1 = exports.foldR = exports.foldL1 = exports.foldL = exports.fromReduce = exports.fromOption = exports.fromArray = exports.fromString = exports.digits = exports.range = exports.successors = exports.repeat = exports.repeatWith = exports.appendToTail = exports.appendToHead = exports.plus = exports.singleton = exports.singletonWith = exports.empty = exports.map = exports.either = exports.unCons = exports.toArray = exports.toIterator = exports.isNull = exports.ord = exports.cmp = exports.partialOrd = exports.partialCmp = exports.eq = exports.equality = exports.partialEq = exports.partialEquality = void 0; | ||
exports.reduce = exports.traversable = exports.monad = exports.functor = exports.monoid = exports.choices = exports.applyCartesian = exports.tupleCartesian = exports.cartesianProduct = exports.diagonal = exports.diagonals = exports.filter = exports.group = exports.groupBy = exports.stripPrefix = exports.spanNot = exports.span = exports.dropWhileEnd = exports.dropWhile = exports.takeWhile = exports.elemIndices = exports.findIndices = exports.elemIndex = exports.findIndex = exports.atMay = exports.replicate = exports.splitAt = exports.drop = exports.take = exports.unfoldR = exports.permutations = exports.subsequences = exports.subsequencesExceptEmpty = exports.interleaveTwoWay = exports.interleave = exports.transpose = exports.intercalate = exports.intersperse = void 0; | ||
exports.zipWith = exports.zip4 = exports.zip3 = exports.zip = exports.init = exports.reverse = exports.tail = exports.last = exports.head = exports.scanL = exports.flatMap = exports.concatMap = exports.concat = exports.build = exports.length = exports.toString = exports.foldR1 = exports.foldR = exports.foldL1 = exports.foldL = exports.fromReduce = exports.fromOption = exports.fromArray = exports.fromString = exports.digits = exports.range = exports.successors = exports.repeat = exports.repeatWith = exports.appendToTail = exports.appendToHead = exports.plus = exports.fromIterable = exports.singleton = exports.singletonWith = exports.empty = exports.map = exports.either = exports.unCons = exports.toArray = exports.toIterator = exports.isNull = exports.ord = exports.cmp = exports.partialOrd = exports.partialCmp = exports.eq = exports.equality = exports.partialEq = exports.partialEquality = void 0; | ||
exports.reduce = exports.traversable = exports.monad = exports.functor = exports.monoid = exports.choices = exports.applyCartesian = exports.tupleCartesian = exports.cartesianProduct = exports.diagonal = exports.diagonals = exports.filter = exports.group = exports.groupBy = exports.stripPrefix = exports.spanNot = exports.span = exports.dropWhileEnd = exports.dropWhile = exports.takeWhile = exports.elemIndices = exports.findIndices = exports.elemIndex = exports.findIndex = exports.atMay = exports.replicate = exports.splitAt = exports.drop = exports.take = exports.unfoldR = exports.permutations = exports.subsequences = exports.subsequencesExceptEmpty = exports.interleaveTwoWay = exports.interleave = exports.transpose = exports.intercalate = exports.intersperse = exports.unzip = void 0; | ||
const cat_js_1 = require("./cat.js"); | ||
const Option = __importStar(require("./option.js")); | ||
const option_js_1 = require("./option.js"); | ||
const ordering_js_1 = require("./ordering.js"); | ||
@@ -39,4 +40,5 @@ const applicative_js_1 = require("./type-class/applicative.js"); | ||
const partialEquality = (equalityT) => { | ||
const self = (l, r) => Option.partialEq(equalityT).eq(l.current(), r.current()) && | ||
self(l.rest(), r.rest()); | ||
const self = (l, r) => ((0, option_js_1.isNone)(l.current()) && (0, option_js_1.isNone)(r.current())) || | ||
(Option.partialEq(equalityT).eq(l.current(), r.current()) && | ||
self(l.rest(), r.rest())); | ||
return self; | ||
@@ -47,4 +49,5 @@ }; | ||
const equality = (equalityT) => { | ||
const self = (l, r) => Option.eq(equalityT).eq(l.current(), r.current()) && | ||
self(l.rest(), r.rest()); | ||
const self = (l, r) => ((0, option_js_1.isNone)(l.current()) && (0, option_js_1.isNone)(r.current())) || | ||
(Option.eq(equalityT).eq(l.current(), r.current()) && | ||
self(l.rest(), r.rest())); | ||
return self; | ||
@@ -208,2 +211,10 @@ }; | ||
/** | ||
* Creates a new list with a finite iterable object. | ||
* | ||
* @param iterable - The finite iterable object such as `Array` or `Map`. | ||
* @returns The list of items from the iterable. | ||
*/ | ||
const fromIterable = (iterable) => (0, exports.fromArray)([...iterable]); | ||
exports.fromIterable = fromIterable; | ||
/** | ||
* Concatenates two lists. | ||
@@ -210,0 +221,0 @@ * |
@@ -119,8 +119,8 @@ "use strict"; | ||
exports.toArray = toArray; | ||
const partialEquality = (equalityT) => (optA, optB) => ((0, exports.isSome)(optA) && (0, exports.isSome)(optB) && equalityT.eq(optA[1], optB[1])) || | ||
((0, exports.isNone)(optA) && (0, exports.isNone)(optB)); | ||
const partialEquality = (equalityT) => (optA, optB) => ((0, exports.isNone)(optA) && (0, exports.isNone)(optB)) || | ||
((0, exports.isSome)(optA) && (0, exports.isSome)(optB) && equalityT.eq(optA[1], optB[1])); | ||
exports.partialEquality = partialEquality; | ||
exports.partialEq = (0, partial_eq_js_1.fromPartialEquality)(exports.partialEquality); | ||
const equality = (equalityT) => (optA, optB) => ((0, exports.isSome)(optA) && (0, exports.isSome)(optB) && equalityT.eq(optA[1], optB[1])) || | ||
((0, exports.isNone)(optA) && (0, exports.isNone)(optB)); | ||
const equality = (equalityT) => (optA, optB) => ((0, exports.isNone)(optA) && (0, exports.isNone)(optB)) || | ||
((0, exports.isSome)(optA) && (0, exports.isSome)(optB) && equalityT.eq(optA[1], optB[1])); | ||
exports.equality = equality; | ||
@@ -127,0 +127,0 @@ exports.eq = (0, eq_js_1.fromEquality)(exports.equality); |
1284173
437
35525