@fncts/base 0.0.40 → 0.0.41
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/_cjs/collection/AsyncIterable/api.cjs +384 -0
- package/_cjs/collection/AsyncIterable/api.cjs.map +1 -0
- package/_cjs/collection/AsyncIterable/definition.cjs +2 -0
- package/_cjs/collection/AsyncIterable/definition.cjs.map +1 -0
- package/_cjs/collection/{compat/Array.cjs → AsyncIterable.cjs} +3 -3
- package/_cjs/collection/AsyncIterable.cjs.map +1 -0
- package/_cjs/collection/Iterable/api/traverseConc.cjs +1 -2
- package/_cjs/collection/Iterable/api/traverseConc.cjs.map +1 -1
- package/_cjs/collection/Iterable/api.cjs +180 -137
- package/_cjs/collection/Iterable/api.cjs.map +1 -1
- package/_cjs/collection/Iterable/constructors.cjs.map +1 -1
- package/_cjs/collection/compat/ArrayLike/api.cjs +1 -2
- package/_cjs/collection/compat/ArrayLike/api.cjs.map +1 -1
- package/_cjs/collection/immutable/Conc/api/makeBy.cjs +1 -2
- package/_cjs/collection/immutable/Conc/api/makeBy.cjs.map +1 -1
- package/_cjs/collection/immutable/Conc/api/replicate.cjs +1 -2
- package/_cjs/collection/immutable/Conc/api/replicate.cjs.map +1 -1
- package/_cjs/collection/immutable/Conc/api.cjs +1 -2
- package/_cjs/collection/immutable/Conc/api.cjs.map +1 -1
- package/_cjs/collection/immutable/Conc/constructors.cjs +3 -4
- package/_cjs/collection/immutable/Conc/constructors.cjs.map +1 -1
- package/_cjs/collection/immutable/Conc/definition.cjs +3 -3
- package/_cjs/collection/immutable/Conc/definition.cjs.map +1 -1
- package/_cjs/collection/immutable/Dictionary/api.cjs +1 -2
- package/_cjs/collection/immutable/Dictionary/api.cjs.map +1 -1
- package/_cjs/collection/immutable/Dictionary/definition.cjs +1 -2
- package/_cjs/collection/immutable/Dictionary/definition.cjs.map +1 -1
- package/_cjs/collection/immutable/HashMap/api.cjs +1 -2
- package/_cjs/collection/immutable/HashMap/api.cjs.map +1 -1
- package/_cjs/collection/immutable/HashMap/definition.cjs +1 -2
- package/_cjs/collection/immutable/HashMap/definition.cjs.map +1 -1
- package/_cjs/collection/immutable/HashMap/internal.cjs +1 -2
- package/_cjs/collection/immutable/HashMap/internal.cjs.map +1 -1
- package/_cjs/collection/immutable/HashSet/api.cjs +1 -2
- package/_cjs/collection/immutable/HashSet/api.cjs.map +1 -1
- package/_cjs/collection/immutable/HashSet/definition.cjs +1 -2
- package/_cjs/collection/immutable/HashSet/definition.cjs.map +1 -1
- package/_cjs/collection/immutable/List/api/foldLeft.cjs +1 -2
- package/_cjs/collection/immutable/List/api/foldLeft.cjs.map +1 -1
- package/_cjs/collection/immutable/List/api/unsafeTail.cjs +1 -2
- package/_cjs/collection/immutable/List/api/unsafeTail.cjs.map +1 -1
- package/_cjs/collection/immutable/List/api.cjs +3 -4
- package/_cjs/collection/immutable/List/api.cjs.map +1 -1
- package/_cjs/collection/immutable/List/constructors.cjs +1 -2
- package/_cjs/collection/immutable/List/constructors.cjs.map +1 -1
- package/_cjs/collection/immutable/List/definition.cjs +1 -2
- package/_cjs/collection/immutable/List/definition.cjs.map +1 -1
- package/_cjs/collection/immutable/Queue/api.cjs +1 -2
- package/_cjs/collection/immutable/Queue/api.cjs.map +1 -1
- package/_cjs/collection/immutable/Queue/constructors.cjs +1 -2
- package/_cjs/collection/immutable/Queue/constructors.cjs.map +1 -1
- package/_cjs/collection/immutable/Queue/definition.cjs +1 -2
- package/_cjs/collection/immutable/Queue/definition.cjs.map +1 -1
- package/_cjs/collection/immutable/Queue/guards.cjs +1 -2
- package/_cjs/collection/immutable/Queue/guards.cjs.map +1 -1
- package/_cjs/collection/immutable/ReadonlyArray/api/chunksOf.cjs +18 -0
- package/_cjs/collection/immutable/ReadonlyArray/api/chunksOf.cjs.map +1 -0
- package/_cjs/collection/immutable/ReadonlyArray/api/splitAt.cjs +15 -0
- package/_cjs/collection/immutable/ReadonlyArray/api/splitAt.cjs.map +1 -0
- package/_cjs/collection/immutable/ReadonlyArray/api/splitWhere.cjs +26 -0
- package/_cjs/collection/immutable/ReadonlyArray/api/splitWhere.cjs.map +1 -0
- package/_cjs/collection/immutable/{ImmutableArray → ReadonlyArray}/api.cjs +562 -538
- package/_cjs/collection/immutable/ReadonlyArray/api.cjs.map +1 -0
- package/_cjs/collection/immutable/ReadonlyArray/constructors.cjs +55 -0
- package/_cjs/collection/immutable/ReadonlyArray/constructors.cjs.map +1 -0
- package/_cjs/collection/immutable/ReadonlyArray/definition.cjs.map +1 -0
- package/_cjs/collection/immutable/{ImmutableArray → ReadonlyArray}/instances.cjs +5 -7
- package/_cjs/collection/immutable/ReadonlyArray/instances.cjs.map +1 -0
- package/_cjs/collection/immutable/{ImmutableArray.cjs → ReadonlyArray.cjs} +8 -19
- package/_cjs/collection/immutable/ReadonlyArray.cjs.map +1 -0
- package/_cjs/collection/immutable/ReadonlyNonEmptyArray/api.cjs +472 -0
- package/_cjs/collection/immutable/ReadonlyNonEmptyArray/api.cjs.map +1 -0
- package/_cjs/collection/immutable/ReadonlyNonEmptyArray/constructors.cjs +79 -0
- package/_cjs/collection/immutable/ReadonlyNonEmptyArray/constructors.cjs.map +1 -0
- package/_cjs/collection/immutable/ReadonlyNonEmptyArray/definition.cjs +2 -0
- package/_cjs/collection/immutable/ReadonlyNonEmptyArray/definition.cjs.map +1 -0
- package/_cjs/collection/immutable/ReadonlyNonEmptyArray/destructors.cjs +49 -0
- package/_cjs/collection/immutable/ReadonlyNonEmptyArray/destructors.cjs.map +1 -0
- package/_cjs/collection/immutable/{ImmutableNonEmptyArray → ReadonlyNonEmptyArray}/instances.cjs +3 -4
- package/_cjs/collection/immutable/ReadonlyNonEmptyArray/instances.cjs.map +1 -0
- package/_cjs/collection/immutable/{ImmutableNonEmptyArray.cjs → ReadonlyNonEmptyArray.cjs} +6 -6
- package/_cjs/collection/immutable/ReadonlyNonEmptyArray.cjs.map +1 -0
- package/_cjs/collection/immutable/RoseTree/api.cjs +1 -2
- package/_cjs/collection/immutable/RoseTree/api.cjs.map +1 -1
- package/_cjs/collection/immutable/RoseTree/definition.cjs +1 -2
- package/_cjs/collection/immutable/RoseTree/definition.cjs.map +1 -1
- package/_cjs/collection/immutable/SortedMap/api.cjs +1 -2
- package/_cjs/collection/immutable/SortedMap/api.cjs.map +1 -1
- package/_cjs/collection/immutable/SortedMap/iterator.cjs +1 -2
- package/_cjs/collection/immutable/SortedMap/iterator.cjs.map +1 -1
- package/_cjs/collection/immutable/Vector/api.cjs +229 -230
- package/_cjs/collection/immutable/Vector/api.cjs.map +1 -1
- package/_cjs/collection/immutable/Vector/definition.cjs +1 -2
- package/_cjs/collection/immutable/Vector/definition.cjs.map +1 -1
- package/_cjs/collection/mutable/ArrayDeque.cjs +1 -2
- package/_cjs/collection/mutable/ArrayDeque.cjs.map +1 -1
- package/_cjs/collection/mutable/HashMap.cjs +1 -2
- package/_cjs/collection/mutable/HashMap.cjs.map +1 -1
- package/_cjs/collection/mutable/HashSet.cjs +1 -2
- package/_cjs/collection/mutable/HashSet.cjs.map +1 -1
- package/_cjs/collection/mutable/ListBuffer.cjs +1 -2
- package/_cjs/collection/mutable/ListBuffer.cjs.map +1 -1
- package/_cjs/collection/weak/IterableWeakMap.cjs +1 -2
- package/_cjs/collection/weak/IterableWeakMap.cjs.map +1 -1
- package/_cjs/control/Eval/api.cjs +89 -41
- package/_cjs/control/Eval/api.cjs.map +1 -1
- package/_cjs/control/Eval/constructors.cjs +5 -1
- package/_cjs/control/Eval/constructors.cjs.map +1 -1
- package/_cjs/control/Eval/instance.cjs +1 -2
- package/_cjs/control/Eval/instance.cjs.map +1 -1
- package/_cjs/control/Eval/run.cjs +1 -2
- package/_cjs/control/Eval/run.cjs.map +1 -1
- package/_cjs/control/Pure/api.cjs +1 -2
- package/_cjs/control/Pure/api.cjs.map +1 -1
- package/_cjs/control/Pure/definition.cjs +1 -2
- package/_cjs/control/Pure/definition.cjs.map +1 -1
- package/_cjs/control/Pure/instances.cjs +1 -2
- package/_cjs/control/Pure/instances.cjs.map +1 -1
- package/_cjs/control/Pure/runtime.cjs +15 -10
- package/_cjs/control/Pure/runtime.cjs.map +1 -1
- package/_cjs/data/CaseClass.cjs +11 -14
- package/_cjs/data/CaseClass.cjs.map +1 -1
- package/_cjs/data/Cause/api/fold.cjs +33 -34
- package/_cjs/data/Cause/api/fold.cjs.map +1 -1
- package/_cjs/data/Cause/api/isEmpty.cjs +1 -2
- package/_cjs/data/Cause/api/isEmpty.cjs.map +1 -1
- package/_cjs/data/Cause/api/linearize.cjs +1 -2
- package/_cjs/data/Cause/api/linearize.cjs.map +1 -1
- package/_cjs/data/Cause/api/prettyPrint.cjs +1 -2
- package/_cjs/data/Cause/api/prettyPrint.cjs.map +1 -1
- package/_cjs/data/Cause/api/unified.cjs +1 -2
- package/_cjs/data/Cause/api/unified.cjs.map +1 -1
- package/_cjs/data/Cause/api.cjs +1 -2
- package/_cjs/data/Cause/api.cjs.map +1 -1
- package/_cjs/data/Cause/definition.cjs +1 -2
- package/_cjs/data/Cause/definition.cjs.map +1 -1
- package/_cjs/data/Const/api.cjs +7 -7
- package/_cjs/data/Const/api.cjs.map +1 -1
- package/_cjs/data/Const/instances.cjs +12 -13
- package/_cjs/data/Const/instances.cjs.map +1 -1
- package/_cjs/data/Data.cjs +1 -2
- package/_cjs/data/Data.cjs.map +1 -1
- package/_cjs/data/Datum/api.cjs +110 -113
- package/_cjs/data/Datum/api.cjs.map +1 -1
- package/_cjs/data/Datum/definition.cjs +1 -2
- package/_cjs/data/Datum/definition.cjs.map +1 -1
- package/_cjs/data/Datum/instances.cjs +1 -2
- package/_cjs/data/Datum/instances.cjs.map +1 -1
- package/_cjs/data/Datum.cjs +39 -0
- package/_cjs/data/Datum.cjs.map +1 -0
- package/_cjs/data/DatumEither/api.cjs +56 -57
- package/_cjs/data/DatumEither/api.cjs.map +1 -1
- package/_cjs/data/Duration/api.cjs +1 -2
- package/_cjs/data/Duration/api.cjs.map +1 -1
- package/_cjs/data/Duration/definition.cjs +1 -2
- package/_cjs/data/Duration/definition.cjs.map +1 -1
- package/_cjs/data/Either/api/align.cjs +1 -2
- package/_cjs/data/Either/api/align.cjs.map +1 -1
- package/_cjs/data/Either/api/alignWith.cjs +1 -2
- package/_cjs/data/Either/api/alignWith.cjs.map +1 -1
- package/_cjs/data/Either/api.cjs +53 -55
- package/_cjs/data/Either/api.cjs.map +1 -1
- package/_cjs/data/Either/constructors.cjs +21 -22
- package/_cjs/data/Either/constructors.cjs.map +1 -1
- package/_cjs/data/Either/definition.cjs +1 -2
- package/_cjs/data/Either/definition.cjs.map +1 -1
- package/_cjs/data/Either/instances.cjs +1 -2
- package/_cjs/data/Either/instances.cjs.map +1 -1
- package/_cjs/data/EitherT/api.cjs +28 -29
- package/_cjs/data/EitherT/api.cjs.map +1 -1
- package/_cjs/data/Environment/api.cjs +1 -2
- package/_cjs/data/Environment/api.cjs.map +1 -1
- package/_cjs/data/Environment/definition.cjs +1 -2
- package/_cjs/data/Environment/definition.cjs.map +1 -1
- package/_cjs/data/EnvironmentPatch.cjs +2 -3
- package/_cjs/data/EnvironmentPatch.cjs.map +1 -1
- package/_cjs/data/Eq/api.cjs +189 -5
- package/_cjs/data/Eq/api.cjs.map +1 -1
- package/_cjs/data/Eq/derivations.cjs +10 -21
- package/_cjs/data/Eq/derivations.cjs.map +1 -1
- package/_cjs/data/Equatable/api.cjs +1 -2
- package/_cjs/data/Equatable/api.cjs.map +1 -1
- package/_cjs/data/Equatable/definition.cjs +1 -2
- package/_cjs/data/Equatable/definition.cjs.map +1 -1
- package/_cjs/data/Exit/api.cjs +90 -80
- package/_cjs/data/Exit/api.cjs.map +1 -1
- package/_cjs/data/Exit/constructors.cjs +1 -2
- package/_cjs/data/Exit/constructors.cjs.map +1 -1
- package/_cjs/data/Exit/definition.cjs +1 -2
- package/_cjs/data/Exit/definition.cjs.map +1 -1
- package/_cjs/data/FiberId/api.cjs +1 -2
- package/_cjs/data/FiberId/api.cjs.map +1 -1
- package/_cjs/data/FiberId/definition.cjs +1 -2
- package/_cjs/data/FiberId/definition.cjs.map +1 -1
- package/_cjs/data/Guard/api.cjs +13 -17
- package/_cjs/data/Guard/api.cjs.map +1 -1
- package/_cjs/data/HashEq.cjs +1 -2
- package/_cjs/data/HashEq.cjs.map +1 -1
- package/_cjs/data/Hashable/definition.cjs +1 -2
- package/_cjs/data/Hashable/definition.cjs.map +1 -1
- package/_cjs/data/Hashable/hash.cjs +1 -2
- package/_cjs/data/Hashable/hash.cjs.map +1 -1
- package/_cjs/data/Identity/api.cjs +1 -2
- package/_cjs/data/Identity/api.cjs.map +1 -1
- package/_cjs/data/Identity/definition.cjs +1 -2
- package/_cjs/data/Identity/definition.cjs.map +1 -1
- package/_cjs/data/Identity/instances.cjs +1 -2
- package/_cjs/data/Identity/instances.cjs.map +1 -1
- package/_cjs/data/Interval.cjs +1 -2
- package/_cjs/data/Interval.cjs.map +1 -1
- package/_cjs/data/Intervals.cjs +1 -2
- package/_cjs/data/Intervals.cjs.map +1 -1
- package/_cjs/data/Maybe/api.cjs +73 -60
- package/_cjs/data/Maybe/api.cjs.map +1 -1
- package/_cjs/data/Maybe/constructors.cjs +37 -38
- package/_cjs/data/Maybe/constructors.cjs.map +1 -1
- package/_cjs/data/Maybe/definition.cjs +1 -2
- package/_cjs/data/Maybe/definition.cjs.map +1 -1
- package/_cjs/data/Maybe/instances.cjs +1 -2
- package/_cjs/data/Maybe/instances.cjs.map +1 -1
- package/_cjs/data/Newtype.cjs +1 -2
- package/_cjs/data/Newtype.cjs.map +1 -1
- package/_cjs/data/Ord/api.cjs +1 -2
- package/_cjs/data/Ord/api.cjs.map +1 -1
- package/_cjs/data/Ord/definition.cjs +1 -2
- package/_cjs/data/Ord/definition.cjs.map +1 -1
- package/_cjs/data/Ord/instances.cjs +1 -2
- package/_cjs/data/Ord/instances.cjs.map +1 -1
- package/_cjs/data/Showable/definition.cjs +1 -2
- package/_cjs/data/Showable/definition.cjs.map +1 -1
- package/_cjs/data/Showable/show.cjs +1 -2
- package/_cjs/data/Showable/show.cjs.map +1 -1
- package/_cjs/data/Showable/styles.cjs +1 -2
- package/_cjs/data/Showable/styles.cjs.map +1 -1
- package/_cjs/data/Showable/util.cjs +1 -2
- package/_cjs/data/Showable/util.cjs.map +1 -1
- package/_cjs/data/Struct/api.cjs +5 -7
- package/_cjs/data/Struct/api.cjs.map +1 -1
- package/_cjs/data/Struct/definition.cjs +1 -2
- package/_cjs/data/Struct/definition.cjs.map +1 -1
- package/_cjs/data/Tag/constructors.cjs +1 -2
- package/_cjs/data/Tag/constructors.cjs.map +1 -1
- package/_cjs/data/Tag/definition.cjs +1 -2
- package/_cjs/data/Tag/definition.cjs.map +1 -1
- package/_cjs/data/These/api.cjs +86 -87
- package/_cjs/data/These/api.cjs.map +1 -1
- package/_cjs/data/These/constructors.cjs +1 -2
- package/_cjs/data/These/constructors.cjs.map +1 -1
- package/_cjs/data/These/definition.cjs +1 -2
- package/_cjs/data/These/definition.cjs.map +1 -1
- package/_cjs/data/These/destructors.cjs +1 -2
- package/_cjs/data/These/destructors.cjs.map +1 -1
- package/_cjs/data/These/instances.cjs +1 -2
- package/_cjs/data/These/instances.cjs.map +1 -1
- package/_cjs/data/Trace/api.cjs +1 -2
- package/_cjs/data/Trace/api.cjs.map +1 -1
- package/_cjs/data/Trace/constructors.cjs +1 -2
- package/_cjs/data/Trace/constructors.cjs.map +1 -1
- package/_cjs/data/Zipped.cjs +1 -2
- package/_cjs/data/Zipped.cjs.map +1 -1
- package/_cjs/data/bigint/instances.cjs +1 -2
- package/_cjs/data/bigint/instances.cjs.map +1 -1
- package/_cjs/data/boolean/instances.cjs +1 -2
- package/_cjs/data/boolean/instances.cjs.map +1 -1
- package/_cjs/data/exceptions/IOError.cjs +1 -2
- package/_cjs/data/exceptions/IOError.cjs.map +1 -1
- package/_cjs/data/exceptions/InterruptedException.cjs +1 -2
- package/_cjs/data/exceptions/InterruptedException.cjs.map +1 -1
- package/_cjs/data/number/instances.cjs +1 -2
- package/_cjs/data/number/instances.cjs.map +1 -1
- package/_cjs/data/object/instances.cjs +1 -2
- package/_cjs/data/object/instances.cjs.map +1 -1
- package/_cjs/data/string/api.cjs +1 -2
- package/_cjs/data/string/api.cjs.map +1 -1
- package/_cjs/data/string/instances.cjs +1 -2
- package/_cjs/data/string/instances.cjs.map +1 -1
- package/_cjs/internal/Stack.cjs +7 -2
- package/_cjs/internal/Stack.cjs.map +1 -1
- package/_cjs/optics/At/api.cjs +1 -2
- package/_cjs/optics/At/api.cjs.map +1 -1
- package/_cjs/optics/At/definition.cjs +1 -2
- package/_cjs/optics/At/definition.cjs.map +1 -1
- package/_cjs/optics/Index/api.cjs +3 -4
- package/_cjs/optics/Index/api.cjs.map +1 -1
- package/_cjs/optics/Iso/api.cjs +1 -2
- package/_cjs/optics/Iso/api.cjs.map +1 -1
- package/_cjs/optics/Iso/definition.cjs +1 -2
- package/_cjs/optics/Iso/definition.cjs.map +1 -1
- package/_cjs/optics/Lens/api.cjs +2 -3
- package/_cjs/optics/Lens/api.cjs.map +1 -1
- package/_cjs/optics/Lens/definition.cjs +1 -2
- package/_cjs/optics/Lens/definition.cjs.map +1 -1
- package/_cjs/optics/Optional/api/compose.cjs +1 -2
- package/_cjs/optics/Optional/api/compose.cjs.map +1 -1
- package/_cjs/optics/Optional/api/focus.cjs +1 -2
- package/_cjs/optics/Optional/api/focus.cjs.map +1 -1
- package/_cjs/optics/Optional/api.cjs +1 -2
- package/_cjs/optics/Optional/api.cjs.map +1 -1
- package/_cjs/optics/Optional/definition.cjs +1 -2
- package/_cjs/optics/Optional/definition.cjs.map +1 -1
- package/_cjs/optics/Prism/api/compose.cjs +1 -2
- package/_cjs/optics/Prism/api/compose.cjs.map +1 -1
- package/_cjs/optics/Prism/api/focus.cjs +1 -2
- package/_cjs/optics/Prism/api/focus.cjs.map +1 -1
- package/_cjs/optics/Prism/api/fromNullable.cjs +1 -2
- package/_cjs/optics/Prism/api/fromNullable.cjs.map +1 -1
- package/_cjs/optics/Prism/api/just.cjs +1 -2
- package/_cjs/optics/Prism/api/just.cjs.map +1 -1
- package/_cjs/optics/Prism/definition.cjs +1 -2
- package/_cjs/optics/Prism/definition.cjs.map +1 -1
- package/_cjs/optics/Traversal/api/compose.cjs +1 -2
- package/_cjs/optics/Traversal/api/compose.cjs.map +1 -1
- package/_cjs/optics/Traversal/api/focus.cjs +1 -2
- package/_cjs/optics/Traversal/api/focus.cjs.map +1 -1
- package/_cjs/optics/Traversal/api/fromTraversable.cjs +1 -2
- package/_cjs/optics/Traversal/api/fromTraversable.cjs.map +1 -1
- package/_cjs/optics/Traversal/definition.cjs +1 -2
- package/_cjs/optics/Traversal/definition.cjs.map +1 -1
- package/_cjs/typeclass/ApplicativeExcept.cjs +1 -2
- package/_cjs/typeclass/ApplicativeExcept.cjs.map +1 -1
- package/_cjs/typeclass/Apply.cjs +1 -2
- package/_cjs/typeclass/Apply.cjs.map +1 -1
- package/_cjs/typeclass/Chain.cjs +1 -2
- package/_cjs/typeclass/Chain.cjs.map +1 -1
- package/_cjs/typeclass/MonadExcept.cjs +1 -2
- package/_cjs/typeclass/MonadExcept.cjs.map +1 -1
- package/_cjs/typeclass/Monoid.cjs +1 -2
- package/_cjs/typeclass/Monoid.cjs.map +1 -1
- package/_cjs/typeclass/Semialign.cjs +1 -2
- package/_cjs/typeclass/Semialign.cjs.map +1 -1
- package/_cjs/typeclass/Semigroup/api.cjs +1 -2
- package/_cjs/typeclass/Semigroup/api.cjs.map +1 -1
- package/_cjs/typeclass/Semigroup/derivations.cjs +1 -2
- package/_cjs/typeclass/Semigroup/derivations.cjs.map +1 -1
- package/_cjs/typeclass/Witherable.cjs +1 -2
- package/_cjs/typeclass/Witherable.cjs.map +1 -1
- package/_cjs/typeclass/WitherableWithIndex.cjs +1 -2
- package/_cjs/typeclass/WitherableWithIndex.cjs.map +1 -1
- package/_cjs/util/AnsiFormat.cjs +1 -2
- package/_cjs/util/AnsiFormat.cjs.map +1 -1
- package/_cjs/util/assert.cjs +1 -1
- package/_cjs/util/assert.cjs.map +1 -1
- package/_cjs/util/pattern.cjs.map +1 -1
- package/_cjs/util/rand/generator/RandomGenerator.cjs.map +1 -1
- package/_mjs/collection/AsyncIterable/api.mjs +366 -0
- package/_mjs/collection/AsyncIterable/api.mjs.map +1 -0
- package/_mjs/collection/AsyncIterable/definition.mjs +2 -0
- package/_mjs/collection/AsyncIterable/definition.mjs.map +1 -0
- package/_mjs/collection/AsyncIterable.mjs +4 -0
- package/_mjs/collection/AsyncIterable.mjs.map +1 -0
- package/_mjs/collection/Iterable/api.mjs +175 -134
- package/_mjs/collection/Iterable/api.mjs.map +1 -1
- package/_mjs/collection/Iterable/constructors.mjs.map +1 -1
- package/_mjs/collection/immutable/Conc/constructors.mjs +2 -2
- package/_mjs/collection/immutable/Conc/constructors.mjs.map +1 -1
- package/_mjs/collection/immutable/Conc/definition.mjs +1 -1
- package/_mjs/collection/immutable/Conc/definition.mjs.map +1 -1
- package/_mjs/collection/immutable/List/api.mjs +2 -2
- package/_mjs/collection/immutable/List/api.mjs.map +1 -1
- package/_mjs/collection/immutable/{ImmutableArray → ReadonlyArray}/api/chunksOf.mjs +3 -3
- package/_mjs/collection/immutable/ReadonlyArray/api/chunksOf.mjs.map +1 -0
- package/_mjs/collection/immutable/ReadonlyArray/api/splitAt.mjs +9 -0
- package/_mjs/collection/immutable/ReadonlyArray/api/splitAt.mjs.map +1 -0
- package/_mjs/collection/immutable/ReadonlyArray/api/splitWhere.mjs +19 -0
- package/_mjs/collection/immutable/ReadonlyArray/api/splitWhere.mjs.map +1 -0
- package/_mjs/collection/immutable/ReadonlyArray/api.mjs +1302 -0
- package/_mjs/collection/immutable/ReadonlyArray/api.mjs.map +1 -0
- package/_mjs/collection/immutable/ReadonlyArray/constructors.mjs +44 -0
- package/_mjs/collection/immutable/ReadonlyArray/constructors.mjs.map +1 -0
- package/_mjs/collection/immutable/ReadonlyArray/definition.mjs.map +1 -0
- package/_mjs/collection/immutable/{ImmutableArray → ReadonlyArray}/instances.mjs +4 -5
- package/_mjs/collection/immutable/ReadonlyArray/instances.mjs.map +1 -0
- package/_mjs/collection/immutable/ReadonlyArray.mjs +11 -0
- package/_mjs/collection/immutable/ReadonlyArray.mjs.map +1 -0
- package/_mjs/collection/immutable/ReadonlyNonEmptyArray/api.mjs +433 -0
- package/_mjs/collection/immutable/ReadonlyNonEmptyArray/api.mjs.map +1 -0
- package/_mjs/collection/immutable/{ImmutableNonEmptyArray → ReadonlyNonEmptyArray}/constructors.mjs +16 -15
- package/_mjs/collection/immutable/ReadonlyNonEmptyArray/constructors.mjs.map +1 -0
- package/_mjs/collection/immutable/ReadonlyNonEmptyArray/definition.mjs +2 -0
- package/_mjs/collection/immutable/ReadonlyNonEmptyArray/definition.mjs.map +1 -0
- package/_mjs/collection/immutable/ReadonlyNonEmptyArray/destructors.mjs +41 -0
- package/_mjs/collection/immutable/ReadonlyNonEmptyArray/destructors.mjs.map +1 -0
- package/_mjs/collection/immutable/{ImmutableNonEmptyArray → ReadonlyNonEmptyArray}/instances.mjs +2 -2
- package/_mjs/collection/immutable/ReadonlyNonEmptyArray/instances.mjs.map +1 -0
- package/_mjs/collection/immutable/ReadonlyNonEmptyArray.mjs +7 -0
- package/_mjs/collection/immutable/ReadonlyNonEmptyArray.mjs.map +1 -0
- package/_mjs/collection/immutable/Vector/api.mjs +224 -224
- package/_mjs/collection/immutable/Vector/api.mjs.map +1 -1
- package/_mjs/control/Eval/api.mjs +83 -15
- package/_mjs/control/Eval/api.mjs.map +1 -1
- package/_mjs/control/Eval/constructors.mjs +4 -0
- package/_mjs/control/Eval/constructors.mjs.map +1 -1
- package/_mjs/control/Pure/runtime.mjs +14 -8
- package/_mjs/control/Pure/runtime.mjs.map +1 -1
- package/_mjs/data/CaseClass.mjs +10 -12
- package/_mjs/data/CaseClass.mjs.map +1 -1
- package/_mjs/data/Cause/api/fold.mjs +32 -32
- package/_mjs/data/Cause/api/fold.mjs.map +1 -1
- package/_mjs/data/Const/api.mjs +7 -7
- package/_mjs/data/Const/api.mjs.map +1 -1
- package/_mjs/data/Const/instances.mjs +11 -11
- package/_mjs/data/Const/instances.mjs.map +1 -1
- package/_mjs/data/Datum/api.mjs +107 -108
- package/_mjs/data/Datum/api.mjs.map +1 -1
- package/_mjs/data/Datum.mjs +5 -0
- package/_mjs/data/Datum.mjs.map +1 -0
- package/_mjs/data/DatumEither/api.mjs +53 -53
- package/_mjs/data/DatumEither/api.mjs.map +1 -1
- package/_mjs/data/Either/api.mjs +42 -42
- package/_mjs/data/Either/api.mjs.map +1 -1
- package/_mjs/data/Either/constructors.mjs +20 -20
- package/_mjs/data/Either/constructors.mjs.map +1 -1
- package/_mjs/data/EitherT/api.mjs +27 -27
- package/_mjs/data/EitherT/api.mjs.map +1 -1
- package/_mjs/data/Environment/api.mjs.map +1 -1
- package/_mjs/data/EnvironmentPatch.mjs +1 -1
- package/_mjs/data/Eq/api.mjs +175 -3
- package/_mjs/data/Eq/api.mjs.map +1 -1
- package/_mjs/data/Eq/derivations.mjs +8 -19
- package/_mjs/data/Eq/derivations.mjs.map +1 -1
- package/_mjs/data/Exit/api.mjs +88 -78
- package/_mjs/data/Exit/api.mjs.map +1 -1
- package/_mjs/data/Guard/api.mjs +12 -15
- package/_mjs/data/Guard/api.mjs.map +1 -1
- package/_mjs/data/Maybe/api.mjs +71 -58
- package/_mjs/data/Maybe/api.mjs.map +1 -1
- package/_mjs/data/Maybe/constructors.mjs +36 -36
- package/_mjs/data/Maybe/constructors.mjs.map +1 -1
- package/_mjs/data/Struct/api.mjs +4 -5
- package/_mjs/data/Struct/api.mjs.map +1 -1
- package/_mjs/data/These/api.mjs +85 -85
- package/_mjs/data/These/api.mjs.map +1 -1
- package/_mjs/internal/Stack.mjs +7 -2
- package/_mjs/internal/Stack.mjs.map +1 -1
- package/_mjs/optics/Index/api.mjs +2 -2
- package/_mjs/optics/Index/api.mjs.map +1 -1
- package/_mjs/optics/Lens/api.mjs +1 -1
- package/_mjs/util/assert.mjs +1 -1
- package/_mjs/util/assert.mjs.map +1 -1
- package/_mjs/util/pattern.mjs.map +1 -1
- package/_mjs/util/rand/generator/RandomGenerator.mjs.map +1 -1
- package/_src/collection/AsyncIterable/api.ts +369 -0
- package/_src/collection/AsyncIterable/definition.ts +7 -0
- package/_src/collection/AsyncIterable.ts +4 -0
- package/_src/collection/Iterable/api.ts +215 -162
- package/_src/collection/Iterable/constructors.ts +0 -2
- package/_src/collection/compat/ArrayLike/definition.ts +2 -2
- package/_src/collection/compat.ts +0 -1
- package/_src/collection/immutable/Conc/constructors.ts +1 -2
- package/_src/collection/immutable/Conc/definition.ts +7 -6
- package/_src/collection/immutable/List/api.ts +2 -2
- package/_src/collection/immutable/ReadonlyArray/api/chunksOf.ts +8 -0
- package/_src/collection/immutable/ReadonlyArray/api/splitAt.ts +8 -0
- package/_src/collection/immutable/{ImmutableArray → ReadonlyArray}/api/splitWhere.ts +3 -3
- package/_src/collection/immutable/ReadonlyArray/api.ts +1536 -0
- package/_src/collection/immutable/ReadonlyArray/constructors.ts +47 -0
- package/_src/collection/{compat/Array → immutable/ReadonlyArray}/definition.ts +8 -0
- package/_src/collection/immutable/{ImmutableArray → ReadonlyArray}/instances.ts +22 -22
- package/_src/collection/immutable/ReadonlyArray.ts +12 -0
- package/_src/collection/immutable/ReadonlyNonEmptyArray/api.ts +481 -0
- package/_src/collection/immutable/ReadonlyNonEmptyArray/constructors.ts +76 -0
- package/_src/collection/immutable/ReadonlyNonEmptyArray/definition.ts +22 -0
- package/_src/collection/immutable/ReadonlyNonEmptyArray/destructors.ts +41 -0
- package/_src/collection/immutable/{ImmutableNonEmptyArray → ReadonlyNonEmptyArray}/instances.ts +13 -13
- package/_src/collection/immutable/ReadonlyNonEmptyArray.ts +7 -0
- package/_src/collection/immutable/Vector/api.ts +310 -309
- package/_src/collection/immutable.ts +11 -11
- package/_src/collection.ts +6 -5
- package/_src/control/Eval/api.ts +109 -16
- package/_src/control/Eval/constructors.ts +5 -0
- package/_src/control/Pure/runtime.ts +8 -2
- package/_src/data/CaseClass.ts +5 -5
- package/_src/data/Cause/api/fold.ts +2 -2
- package/_src/data/Const/api.ts +8 -8
- package/_src/data/Const/instances.ts +10 -10
- package/_src/data/Datum/api.ts +113 -113
- package/_src/data/Datum.ts +5 -0
- package/_src/data/DatumEither/api.ts +41 -43
- package/_src/data/Either/api.ts +47 -47
- package/_src/data/Either/constructors.ts +14 -16
- package/_src/data/EitherT/api.ts +111 -110
- package/_src/data/Environment/api.ts +6 -3
- package/_src/data/Eq/api.ts +193 -4
- package/_src/data/Eq/derivations.ts +12 -19
- package/_src/data/Exit/api.ts +89 -77
- package/_src/data/Guard/api.ts +11 -11
- package/_src/data/Maybe/api.ts +82 -73
- package/_src/data/Maybe/constructors.ts +34 -36
- package/_src/data/Struct/api.ts +1 -1
- package/_src/data/These/api.ts +93 -92
- package/_src/data.ts +1 -0
- package/_src/global.ts +7 -12
- package/_src/internal/Stack.ts +6 -2
- package/_src/optics/Index/api.ts +1 -1
- package/_src/util/assert.ts +2 -2
- package/_src/util/pattern.ts +8 -90
- package/_src/util/rand/generator/RandomGenerator.ts +1 -0
- package/collection/AsyncIterable/api.d.ts +71 -0
- package/collection/AsyncIterable/definition.d.ts +9 -0
- package/collection/AsyncIterable.d.ts +2 -0
- package/collection/Iterable/api.d.ts +40 -25
- package/collection/compat/ArrayLike/definition.d.ts +2 -2
- package/collection/compat.d.ts +0 -1
- package/collection/immutable/Conc/definition.d.ts +1 -1
- package/collection/immutable/ReadonlyArray/api/chunksOf.d.ts +5 -0
- package/collection/immutable/ReadonlyArray/api/splitAt.d.ts +5 -0
- package/collection/immutable/ReadonlyArray/api/splitWhere.d.ts +6 -0
- package/collection/immutable/ReadonlyArray/api.d.ts +614 -0
- package/collection/immutable/ReadonlyArray/constructors.d.ts +30 -0
- package/collection/{compat/Array → immutable/ReadonlyArray}/definition.d.ts +8 -0
- package/collection/immutable/ReadonlyArray/instances.d.ts +87 -0
- package/collection/immutable/ReadonlyArray.d.ts +7 -0
- package/collection/immutable/ReadonlyNonEmptyArray/api.d.ts +186 -0
- package/collection/immutable/ReadonlyNonEmptyArray/constructors.d.ts +45 -0
- package/collection/immutable/ReadonlyNonEmptyArray/definition.d.ts +21 -0
- package/collection/immutable/ReadonlyNonEmptyArray/destructors.d.ts +31 -0
- package/collection/immutable/ReadonlyNonEmptyArray/instances.d.ts +52 -0
- package/collection/immutable/ReadonlyNonEmptyArray.d.ts +5 -0
- package/collection/immutable/Vector/api.d.ts +93 -93
- package/collection/immutable.d.ts +2 -2
- package/collection.d.ts +1 -0
- package/control/Eval/api.d.ts +27 -5
- package/control/Eval/constructors.d.ts +5 -0
- package/data/CaseClass.d.ts +2 -3
- package/data/Const/api.d.ts +5 -5
- package/data/Const/instances.d.ts +4 -4
- package/data/Datum/api.d.ts +64 -64
- package/data/Datum.d.ts +3 -0
- package/data/DatumEither/api.d.ts +25 -25
- package/data/Either/api.d.ts +24 -24
- package/data/Either/constructors.d.ts +12 -12
- package/data/EitherT/api.d.ts +16 -16
- package/data/Environment/api.d.ts +4 -2
- package/data/Eq/api.d.ts +89 -2
- package/data/Eq/derivations.d.ts +7 -0
- package/data/Exit/api.d.ts +43 -37
- package/data/Guard/api.d.ts +7 -8
- package/data/Maybe/api.d.ts +38 -33
- package/data/Maybe/constructors.d.ts +16 -16
- package/data/These/api.d.ts +26 -26
- package/data.d.ts +1 -0
- package/global.d.ts +4 -8
- package/internal/Stack.d.ts +2 -0
- package/optics/Lens/api.d.ts +1 -1
- package/package.json +3 -3
- package/util/assert.d.ts +1 -1
- package/_cjs/collection/compat/Array/api.cjs +0 -142
- package/_cjs/collection/compat/Array/api.cjs.map +0 -1
- package/_cjs/collection/compat/Array/definition.cjs.map +0 -1
- package/_cjs/collection/compat/Array.cjs.map +0 -1
- package/_cjs/collection/immutable/ImmutableArray/api/chunksOf.cjs +0 -19
- package/_cjs/collection/immutable/ImmutableArray/api/chunksOf.cjs.map +0 -1
- package/_cjs/collection/immutable/ImmutableArray/api/slice.cjs +0 -18
- package/_cjs/collection/immutable/ImmutableArray/api/slice.cjs.map +0 -1
- package/_cjs/collection/immutable/ImmutableArray/api/splitAt.cjs +0 -18
- package/_cjs/collection/immutable/ImmutableArray/api/splitAt.cjs.map +0 -1
- package/_cjs/collection/immutable/ImmutableArray/api/splitWhere.cjs +0 -28
- package/_cjs/collection/immutable/ImmutableArray/api/splitWhere.cjs.map +0 -1
- package/_cjs/collection/immutable/ImmutableArray/api.cjs.map +0 -1
- package/_cjs/collection/immutable/ImmutableArray/constructors.cjs +0 -59
- package/_cjs/collection/immutable/ImmutableArray/constructors.cjs.map +0 -1
- package/_cjs/collection/immutable/ImmutableArray/definition.cjs +0 -44
- package/_cjs/collection/immutable/ImmutableArray/definition.cjs.map +0 -1
- package/_cjs/collection/immutable/ImmutableArray/instances.cjs.map +0 -1
- package/_cjs/collection/immutable/ImmutableArray.cjs.map +0 -1
- package/_cjs/collection/immutable/ImmutableNonEmptyArray/api.cjs +0 -474
- package/_cjs/collection/immutable/ImmutableNonEmptyArray/api.cjs.map +0 -1
- package/_cjs/collection/immutable/ImmutableNonEmptyArray/constructors.cjs +0 -79
- package/_cjs/collection/immutable/ImmutableNonEmptyArray/constructors.cjs.map +0 -1
- package/_cjs/collection/immutable/ImmutableNonEmptyArray/definition.cjs +0 -36
- package/_cjs/collection/immutable/ImmutableNonEmptyArray/definition.cjs.map +0 -1
- package/_cjs/collection/immutable/ImmutableNonEmptyArray/destructors.cjs +0 -53
- package/_cjs/collection/immutable/ImmutableNonEmptyArray/destructors.cjs.map +0 -1
- package/_cjs/collection/immutable/ImmutableNonEmptyArray/instances.cjs.map +0 -1
- package/_cjs/collection/immutable/ImmutableNonEmptyArray.cjs.map +0 -1
- package/_cjs/control/Eval/api/sequenceArray.cjs +0 -17
- package/_cjs/control/Eval/api/sequenceArray.cjs.map +0 -1
- package/_mjs/collection/compat/Array/api.mjs +0 -125
- package/_mjs/collection/compat/Array/api.mjs.map +0 -1
- package/_mjs/collection/compat/Array/definition.mjs.map +0 -1
- package/_mjs/collection/compat/Array.mjs +0 -4
- package/_mjs/collection/compat/Array.mjs.map +0 -1
- package/_mjs/collection/immutable/ImmutableArray/api/chunksOf.mjs.map +0 -1
- package/_mjs/collection/immutable/ImmutableArray/api/slice.mjs +0 -10
- package/_mjs/collection/immutable/ImmutableArray/api/slice.mjs.map +0 -1
- package/_mjs/collection/immutable/ImmutableArray/api/splitAt.mjs +0 -10
- package/_mjs/collection/immutable/ImmutableArray/api/splitAt.mjs.map +0 -1
- package/_mjs/collection/immutable/ImmutableArray/api/splitWhere.mjs +0 -20
- package/_mjs/collection/immutable/ImmutableArray/api/splitWhere.mjs.map +0 -1
- package/_mjs/collection/immutable/ImmutableArray/api.mjs +0 -1284
- package/_mjs/collection/immutable/ImmutableArray/api.mjs.map +0 -1
- package/_mjs/collection/immutable/ImmutableArray/constructors.mjs +0 -46
- package/_mjs/collection/immutable/ImmutableArray/constructors.mjs.map +0 -1
- package/_mjs/collection/immutable/ImmutableArray/definition.mjs +0 -35
- package/_mjs/collection/immutable/ImmutableArray/definition.mjs.map +0 -1
- package/_mjs/collection/immutable/ImmutableArray/instances.mjs.map +0 -1
- package/_mjs/collection/immutable/ImmutableArray.mjs +0 -12
- package/_mjs/collection/immutable/ImmutableArray.mjs.map +0 -1
- package/_mjs/collection/immutable/ImmutableNonEmptyArray/api.mjs +0 -437
- package/_mjs/collection/immutable/ImmutableNonEmptyArray/api.mjs.map +0 -1
- package/_mjs/collection/immutable/ImmutableNonEmptyArray/constructors.mjs.map +0 -1
- package/_mjs/collection/immutable/ImmutableNonEmptyArray/definition.mjs +0 -25
- package/_mjs/collection/immutable/ImmutableNonEmptyArray/definition.mjs.map +0 -1
- package/_mjs/collection/immutable/ImmutableNonEmptyArray/destructors.mjs +0 -43
- package/_mjs/collection/immutable/ImmutableNonEmptyArray/destructors.mjs.map +0 -1
- package/_mjs/collection/immutable/ImmutableNonEmptyArray/instances.mjs.map +0 -1
- package/_mjs/collection/immutable/ImmutableNonEmptyArray.mjs +0 -7
- package/_mjs/collection/immutable/ImmutableNonEmptyArray.mjs.map +0 -1
- package/_mjs/control/Eval/api/sequenceArray.mjs +0 -9
- package/_mjs/control/Eval/api/sequenceArray.mjs.map +0 -1
- package/_src/collection/compat/Array/api.ts +0 -134
- package/_src/collection/compat/Array.ts +0 -4
- package/_src/collection/immutable/ImmutableArray/api/chunksOf.ts +0 -8
- package/_src/collection/immutable/ImmutableArray/api/slice.ts +0 -8
- package/_src/collection/immutable/ImmutableArray/api/splitAt.ts +0 -8
- package/_src/collection/immutable/ImmutableArray/api.ts +0 -1526
- package/_src/collection/immutable/ImmutableArray/constructors.ts +0 -47
- package/_src/collection/immutable/ImmutableArray/definition.ts +0 -48
- package/_src/collection/immutable/ImmutableArray.ts +0 -13
- package/_src/collection/immutable/ImmutableNonEmptyArray/api.ts +0 -483
- package/_src/collection/immutable/ImmutableNonEmptyArray/constructors.ts +0 -83
- package/_src/collection/immutable/ImmutableNonEmptyArray/definition.ts +0 -47
- package/_src/collection/immutable/ImmutableNonEmptyArray/destructors.ts +0 -41
- package/_src/collection/immutable/ImmutableNonEmptyArray.ts +0 -7
- package/_src/control/Eval/api/sequenceArray.ts +0 -6
- package/collection/compat/Array/api.d.ts +0 -62
- package/collection/compat/Array.d.ts +0 -2
- package/collection/immutable/ImmutableArray/api/chunksOf.d.ts +0 -6
- package/collection/immutable/ImmutableArray/api/slice.d.ts +0 -6
- package/collection/immutable/ImmutableArray/api/splitAt.d.ts +0 -6
- package/collection/immutable/ImmutableArray/api/splitWhere.d.ts +0 -7
- package/collection/immutable/ImmutableArray/api.d.ts +0 -602
- package/collection/immutable/ImmutableArray/constructors.d.ts +0 -32
- package/collection/immutable/ImmutableArray/definition.d.ts +0 -34
- package/collection/immutable/ImmutableArray/instances.d.ts +0 -87
- package/collection/immutable/ImmutableArray.d.ts +0 -8
- package/collection/immutable/ImmutableNonEmptyArray/api.d.ts +0 -186
- package/collection/immutable/ImmutableNonEmptyArray/constructors.d.ts +0 -46
- package/collection/immutable/ImmutableNonEmptyArray/definition.d.ts +0 -40
- package/collection/immutable/ImmutableNonEmptyArray/destructors.d.ts +0 -32
- package/collection/immutable/ImmutableNonEmptyArray/instances.d.ts +0 -52
- package/collection/immutable/ImmutableNonEmptyArray.d.ts +0 -5
- package/control/Eval/api/sequenceArray.d.ts +0 -6
- /package/_cjs/collection/{compat/Array → immutable/ReadonlyArray}/definition.cjs +0 -0
- /package/_mjs/collection/{compat/Array → immutable/ReadonlyArray}/definition.mjs +0 -0
@@ -81,65 +81,6 @@ export function append<A>(a: A) {
|
|
81
81
|
};
|
82
82
|
}
|
83
83
|
|
84
|
-
/**
|
85
|
-
* @tsplus pipeable fncts.Vector filterMapWithIndex
|
86
|
-
*/
|
87
|
-
export function filterMapWithIndex<A, B>(f: (i: number, a: A) => Maybe<B>) {
|
88
|
-
return (self: Vector<A>): Vector<B> => {
|
89
|
-
return self.foldLeftWithIndex(Vector.emptyPushable(), (i, acc, a) =>
|
90
|
-
f(i, a).match(
|
91
|
-
() => acc,
|
92
|
-
(b) => acc.push(b),
|
93
|
-
),
|
94
|
-
);
|
95
|
-
};
|
96
|
-
}
|
97
|
-
|
98
|
-
/**
|
99
|
-
* @tsplus pipeable fncts.Vector filterMap
|
100
|
-
*/
|
101
|
-
export function filterMap<A, B>(f: (a: A) => Maybe<B>) {
|
102
|
-
return (self: Vector<A>): Vector<B> => {
|
103
|
-
return self.filterMapWithIndex((_, a) => f(a));
|
104
|
-
};
|
105
|
-
}
|
106
|
-
|
107
|
-
/**
|
108
|
-
* @tsplus pipeable fncts.Vector filterWithIndex
|
109
|
-
*/
|
110
|
-
export function filterWithIndex<A, B extends A>(
|
111
|
-
refinement: RefinementWithIndex<number, A, B>,
|
112
|
-
): (self: Vector<A>) => Vector<B>;
|
113
|
-
export function filterWithIndex<A>(predicate: PredicateWithIndex<number, A>): (self: Vector<A>) => Vector<A>;
|
114
|
-
export function filterWithIndex<A>(predicate: PredicateWithIndex<number, A>) {
|
115
|
-
return (self: Vector<A>): Vector<A> => {
|
116
|
-
return self.foldLeftWithIndex(Vector.emptyPushable(), (i, acc, a) => (predicate(i, a) ? acc.push(a) : acc));
|
117
|
-
};
|
118
|
-
}
|
119
|
-
|
120
|
-
/**
|
121
|
-
* @tsplus pipeable fncts.Vector filter
|
122
|
-
*/
|
123
|
-
export function filter<A, B extends A>(refinement: Refinement<A, B>): (self: Vector<A>) => Vector<B>;
|
124
|
-
export function filter<A>(predicate: Predicate<A>): (self: Vector<A>) => Vector<A>;
|
125
|
-
export function filter<A>(predicate: Predicate<A>) {
|
126
|
-
return (self: Vector<A>): Vector<A> => {
|
127
|
-
return self.filterWithIndex((_, a) => predicate(a));
|
128
|
-
};
|
129
|
-
}
|
130
|
-
|
131
|
-
/**
|
132
|
-
* Maps a function over a Vector and concatenates all the resulting
|
133
|
-
* Vectors together.
|
134
|
-
*
|
135
|
-
* @tsplus pipeable fncts.Vector flatMap
|
136
|
-
*/
|
137
|
-
export function flatMap<A, B>(f: (a: A) => Vector<B>) {
|
138
|
-
return (self: Vector<A>): Vector<B> => {
|
139
|
-
return self.map(f).flatten;
|
140
|
-
};
|
141
|
-
}
|
142
|
-
|
143
84
|
/**
|
144
85
|
* Splits the Vector into chunks of the given size.
|
145
86
|
*
|
@@ -213,20 +154,109 @@ export function concat<A>(that: Vector<A>) {
|
|
213
154
|
}
|
214
155
|
};
|
215
156
|
}
|
157
|
+
/**
|
158
|
+
* @tsplus pipeable fncts.Vector filter
|
159
|
+
*/
|
160
|
+
export function filter<A, B extends A>(refinement: Refinement<A, B>): (self: Vector<A>) => Vector<B>;
|
161
|
+
|
162
|
+
export function filter<A>(predicate: Predicate<A>): (self: Vector<A>) => Vector<A>;
|
163
|
+
export function filter<A>(predicate: Predicate<A>) {
|
164
|
+
return (self: Vector<A>): Vector<A> => {
|
165
|
+
return self.filterWithIndex((_, a) => predicate(a));
|
166
|
+
};
|
167
|
+
}
|
168
|
+
/**
|
169
|
+
* @tsplus pipeable fncts.Vector filterMap
|
170
|
+
*/
|
171
|
+
export function filterMap<A, B>(f: (a: A) => Maybe<B>) {
|
172
|
+
return (self: Vector<A>): Vector<B> => {
|
173
|
+
return self.filterMapWithIndex((_, a) => f(a));
|
174
|
+
};
|
175
|
+
}
|
176
|
+
|
177
|
+
/**
|
178
|
+
* @tsplus pipeable fncts.Vector filterMapWithIndex
|
179
|
+
*/
|
180
|
+
export function filterMapWithIndex<A, B>(f: (i: number, a: A) => Maybe<B>) {
|
181
|
+
return (self: Vector<A>): Vector<B> => {
|
182
|
+
return self.foldLeftWithIndex(Vector.emptyPushable(), (i, acc, a) =>
|
183
|
+
f(i, a).match(
|
184
|
+
() => acc,
|
185
|
+
(b) => acc.push(b),
|
186
|
+
),
|
187
|
+
);
|
188
|
+
};
|
189
|
+
}
|
190
|
+
|
191
|
+
/**
|
192
|
+
* @tsplus pipeable fncts.Vector filterWithIndex
|
193
|
+
*/
|
194
|
+
export function filterWithIndex<A, B extends A>(
|
195
|
+
refinement: RefinementWithIndex<number, A, B>,
|
196
|
+
): (self: Vector<A>) => Vector<B>;
|
197
|
+
|
198
|
+
export function filterWithIndex<A>(predicate: PredicateWithIndex<number, A>): (self: Vector<A>) => Vector<A>;
|
199
|
+
export function filterWithIndex<A>(predicate: PredicateWithIndex<number, A>) {
|
200
|
+
return (self: Vector<A>): Vector<A> => {
|
201
|
+
return self.foldLeftWithIndex(Vector.emptyPushable(), (i, acc, a) => (predicate(i, a) ? acc.push(a) : acc));
|
202
|
+
};
|
203
|
+
}
|
204
|
+
|
205
|
+
/**
|
206
|
+
* Maps a function over a Vector and concatenates all the resulting
|
207
|
+
* Vectors together.
|
208
|
+
*
|
209
|
+
* @tsplus pipeable fncts.Vector flatMap
|
210
|
+
*/
|
211
|
+
export function flatMap<A, B>(f: (a: A) => Vector<B>) {
|
212
|
+
return (self: Vector<A>): Vector<B> => {
|
213
|
+
return self.map(f).flatten;
|
214
|
+
};
|
215
|
+
}
|
216
|
+
|
217
|
+
const containsState: ContainsState = {
|
218
|
+
element: undefined,
|
219
|
+
result: false,
|
220
|
+
};
|
216
221
|
|
217
222
|
type ContainsState = {
|
218
223
|
element: any;
|
219
224
|
result: boolean;
|
220
225
|
};
|
221
226
|
|
222
|
-
|
223
|
-
element:
|
224
|
-
|
227
|
+
type ElemState = {
|
228
|
+
element: any;
|
229
|
+
equals: (y: any) => (x: any) => boolean;
|
230
|
+
result: boolean;
|
225
231
|
};
|
226
232
|
|
227
|
-
|
228
|
-
|
229
|
-
|
233
|
+
type FindIndexState = {
|
234
|
+
predicate: (a: any) => boolean;
|
235
|
+
found: boolean;
|
236
|
+
index: number;
|
237
|
+
};
|
238
|
+
|
239
|
+
type FindNotIndexState = {
|
240
|
+
predicate: (a: any) => boolean;
|
241
|
+
index: number;
|
242
|
+
};
|
243
|
+
|
244
|
+
type FoldWhileState<A, B> = {
|
245
|
+
predicate: Predicate<B>;
|
246
|
+
result: B;
|
247
|
+
f: (i: number, b: B, a: A) => B;
|
248
|
+
};
|
249
|
+
|
250
|
+
type IndexOfState = {
|
251
|
+
element: any;
|
252
|
+
found: boolean;
|
253
|
+
index: number;
|
254
|
+
};
|
255
|
+
|
256
|
+
type PredState = {
|
257
|
+
predicate: (a: any) => boolean;
|
258
|
+
result: any;
|
259
|
+
};
|
230
260
|
|
231
261
|
/**
|
232
262
|
* Returns `true` if the Vector contains the specified element.
|
@@ -243,6 +273,10 @@ export function contains<A>(element: A) {
|
|
243
273
|
};
|
244
274
|
}
|
245
275
|
|
276
|
+
function containsCb(value: any, state: ContainsState): boolean {
|
277
|
+
return !(state.result = value === state.element);
|
278
|
+
}
|
279
|
+
|
246
280
|
/**
|
247
281
|
* Returns a new Vector without the first `n` elements.
|
248
282
|
*
|
@@ -292,20 +326,6 @@ export function dropRepeatsWith<A>(predicate: (a: A, b: A) => boolean) {
|
|
292
326
|
};
|
293
327
|
}
|
294
328
|
|
295
|
-
type FindNotIndexState = {
|
296
|
-
predicate: (a: any) => boolean;
|
297
|
-
index: number;
|
298
|
-
};
|
299
|
-
|
300
|
-
function findNotIndexCb(value: any, state: FindNotIndexState): boolean {
|
301
|
-
if (state.predicate(value)) {
|
302
|
-
++state.index;
|
303
|
-
return true;
|
304
|
-
} else {
|
305
|
-
return false;
|
306
|
-
}
|
307
|
-
}
|
308
|
-
|
309
329
|
/**
|
310
330
|
* Removes the first elements in the Vector for which the predicate returns
|
311
331
|
* `true`.
|
@@ -321,16 +341,6 @@ export function dropWhile<A>(predicate: Predicate<A>) {
|
|
321
341
|
};
|
322
342
|
}
|
323
343
|
|
324
|
-
type ElemState = {
|
325
|
-
element: any;
|
326
|
-
equals: (y: any) => (x: any) => boolean;
|
327
|
-
result: boolean;
|
328
|
-
};
|
329
|
-
|
330
|
-
function elemCb(value: any, state: ElemState): boolean {
|
331
|
-
return !(state.result = state.equals(state.element)(value));
|
332
|
-
}
|
333
|
-
|
334
344
|
/**
|
335
345
|
* @tsplus pipeable fncts.Vector elem
|
336
346
|
*/
|
@@ -341,40 +351,9 @@ export function elem<A>(a: A, /** @tsplus auto */ E: Eq<A>) {
|
|
341
351
|
return foldLeftCb(elemCb, elemState, self).result;
|
342
352
|
};
|
343
353
|
}
|
344
|
-
/**
|
345
|
-
* Returns true if the two Vectors are equivalent.
|
346
|
-
*
|
347
|
-
* @complexity O(n)
|
348
|
-
* @tsplus pipeable fncts.Vector equals
|
349
|
-
*/
|
350
|
-
export function equals<A>(that: Vector<A>) {
|
351
|
-
return (self: Vector<A>): boolean => {
|
352
|
-
return self.corresponds(that, Equatable.strictEquals);
|
353
|
-
};
|
354
|
-
}
|
355
354
|
|
356
|
-
|
357
|
-
|
358
|
-
result: any;
|
359
|
-
};
|
360
|
-
|
361
|
-
function everyCb<A>(value: A, state: any): boolean {
|
362
|
-
return (state.result = state.predicate(value));
|
363
|
-
}
|
364
|
-
|
365
|
-
/**
|
366
|
-
* Returns `true` if and only if the predicate function returns `true`
|
367
|
-
* for all elements in the given Vector.
|
368
|
-
*
|
369
|
-
* @complexity O(n)
|
370
|
-
* @tsplus pipeable fncts.Vector every
|
371
|
-
*/
|
372
|
-
export function every<A, B extends A>(refinement: Refinement<A, B>): (self: Vector<A>) => self is Vector<B>;
|
373
|
-
export function every<A>(predicate: Predicate<A>): (self: Vector<A>) => boolean;
|
374
|
-
export function every<A>(predicate: Predicate<A>) {
|
375
|
-
return (self: Vector<A>): boolean => {
|
376
|
-
return foldLeftCb<A, PredState>(everyCb, { predicate, result: true }, self).result;
|
377
|
-
};
|
355
|
+
function elemCb(value: any, state: ElemState): boolean {
|
356
|
+
return !(state.result = state.equals(state.element)(value));
|
378
357
|
}
|
379
358
|
|
380
359
|
/**
|
@@ -394,24 +373,37 @@ export function emptyPushable<A = never>(): MutableVector<A> {
|
|
394
373
|
return new Vector(0, 0, 0, [], undefined, []) as any;
|
395
374
|
}
|
396
375
|
|
397
|
-
|
398
|
-
|
376
|
+
/**
|
377
|
+
* Returns true if the two Vectors are equivalent.
|
378
|
+
*
|
379
|
+
* @complexity O(n)
|
380
|
+
* @tsplus pipeable fncts.Vector equals
|
381
|
+
*/
|
382
|
+
export function equals<A>(that: Vector<A>) {
|
383
|
+
return (self: Vector<A>): boolean => {
|
384
|
+
return self.corresponds(that, Equatable.strictEquals);
|
385
|
+
};
|
399
386
|
}
|
400
387
|
|
401
388
|
/**
|
402
|
-
* Returns true if and only if
|
403
|
-
*
|
389
|
+
* Returns `true` if and only if the predicate function returns `true`
|
390
|
+
* for all elements in the given Vector.
|
404
391
|
*
|
405
392
|
* @complexity O(n)
|
406
|
-
*
|
407
|
-
* @tsplus pipeable fncts.Vector some
|
393
|
+
* @tsplus pipeable fncts.Vector every
|
408
394
|
*/
|
409
|
-
export function
|
395
|
+
export function every<A, B extends A>(refinement: Refinement<A, B>): (self: Vector<A>) => self is Vector<B>;
|
396
|
+
export function every<A>(predicate: Predicate<A>): (self: Vector<A>) => boolean;
|
397
|
+
export function every<A>(predicate: Predicate<A>) {
|
410
398
|
return (self: Vector<A>): boolean => {
|
411
|
-
return foldLeftCb<A, PredState>(
|
399
|
+
return foldLeftCb<A, PredState>(everyCb, { predicate, result: true }, self).result;
|
412
400
|
};
|
413
401
|
}
|
414
402
|
|
403
|
+
function everyCb<A>(value: A, state: any): boolean {
|
404
|
+
return (state.result = state.predicate(value));
|
405
|
+
}
|
406
|
+
|
415
407
|
/**
|
416
408
|
* Returns the _first_ element for which the predicate returns `true`.
|
417
409
|
* If no such element is found the function returns `undefined`.
|
@@ -425,15 +417,13 @@ export function find<A>(predicate: Predicate<A>) {
|
|
425
417
|
};
|
426
418
|
}
|
427
419
|
|
428
|
-
|
429
|
-
|
430
|
-
|
431
|
-
|
432
|
-
}
|
433
|
-
|
434
|
-
|
435
|
-
++state.index;
|
436
|
-
return !(state.found = state.predicate(value));
|
420
|
+
function findCb<A>(value: A, state: PredState): boolean {
|
421
|
+
if (state.predicate(value)) {
|
422
|
+
state.result = value;
|
423
|
+
return false;
|
424
|
+
} else {
|
425
|
+
return true;
|
426
|
+
}
|
437
427
|
}
|
438
428
|
|
439
429
|
/**
|
@@ -451,6 +441,11 @@ export function findIndex<A>(predicate: Predicate<A>) {
|
|
451
441
|
};
|
452
442
|
}
|
453
443
|
|
444
|
+
function findIndexCb<A>(value: A, state: FindIndexState): boolean {
|
445
|
+
++state.index;
|
446
|
+
return !(state.found = state.predicate(value));
|
447
|
+
}
|
448
|
+
|
454
449
|
/**
|
455
450
|
* Returns the _last_ element for which the predicate returns `true`.
|
456
451
|
* If no such element is found the function returns `undefined`.
|
@@ -479,6 +474,15 @@ export function findLastIndex<A>(predicate: Predicate<A>) {
|
|
479
474
|
};
|
480
475
|
}
|
481
476
|
|
477
|
+
function findNotIndexCb(value: any, state: FindNotIndexState): boolean {
|
478
|
+
if (state.predicate(value)) {
|
479
|
+
++state.index;
|
480
|
+
return true;
|
481
|
+
} else {
|
482
|
+
return false;
|
483
|
+
}
|
484
|
+
}
|
485
|
+
|
482
486
|
/**
|
483
487
|
* Flattens a Vector of Vectors into a Vector. Note that this function does
|
484
488
|
* not flatten recursively. It removes one level of nesting only.
|
@@ -491,81 +495,15 @@ export function flatten<A>(self: Vector<Vector<A>>): Vector<A> {
|
|
491
495
|
return self.foldLeft<Vector<A>, Vector<A>>(Vector.empty(), (acc, a) => acc.concat(a));
|
492
496
|
}
|
493
497
|
|
494
|
-
/**
|
495
|
-
*
|
496
|
-
*
|
497
|
-
* @
|
498
|
-
|
499
|
-
|
500
|
-
|
501
|
-
|
502
|
-
|
503
|
-
if (sequence.length > 0 && (sequence[0] !== undefined || 0 in sequence)) {
|
504
|
-
for (let i = 0; i < sequence.length; ++i) {
|
505
|
-
l.push(sequence[i]);
|
506
|
-
}
|
507
|
-
} else if (Symbol.iterator in sequence) {
|
508
|
-
const iterator = sequence[Symbol.iterator]();
|
509
|
-
let cur;
|
510
|
-
while (!(cur = iterator.next()).done) {
|
511
|
-
l.push(cur.value);
|
512
|
-
}
|
513
|
-
}
|
514
|
-
return l;
|
515
|
-
}
|
516
|
-
|
517
|
-
/**
|
518
|
-
* Folds a function over a Vector. Left-associative.
|
519
|
-
*
|
520
|
-
* @tsplus pipeable fncts.Vector foldLeft
|
521
|
-
*/
|
522
|
-
export function foldLeft<A, B>(initial: B, f: (acc: B, a: A) => B) {
|
523
|
-
return (self: Vector<A>): B => {
|
524
|
-
return self.foldLeftWithIndex(initial, (_, b, a) => f(b, a));
|
525
|
-
};
|
526
|
-
}
|
527
|
-
|
528
|
-
/**
|
529
|
-
* @tsplus pipeable fncts.Vector foldLeftWithIndex
|
530
|
-
*/
|
531
|
-
export function foldLeftWithIndex<A, B>(b: B, f: (i: number, b: B, a: A) => B) {
|
532
|
-
return (self: Vector<A>): B => {
|
533
|
-
const suffixSize = getSuffixSize(self);
|
534
|
-
const prefixSize = getPrefixSize(self);
|
535
|
-
let [acc, index] = foldLeftPrefix(f, b, self.prefix, prefixSize);
|
536
|
-
if (self.root !== undefined) {
|
537
|
-
[acc, index] = foldLeftNode(f, acc, self.root, getDepth(self), index);
|
538
|
-
}
|
539
|
-
return foldLeftSuffix(f, acc, self.suffix, suffixSize, index)[0];
|
540
|
-
};
|
541
|
-
}
|
542
|
-
|
543
|
-
type FoldWhileState<A, B> = {
|
544
|
-
predicate: Predicate<B>;
|
545
|
-
result: B;
|
546
|
-
f: (i: number, b: B, a: A) => B;
|
547
|
-
};
|
548
|
-
|
549
|
-
/**
|
550
|
-
* Similar to `foldl`. But, for each element it calls the predicate function
|
551
|
-
* _before_ the folding function and stops folding if it returns `false`.
|
552
|
-
*
|
553
|
-
*
|
554
|
-
* @example
|
555
|
-
* const isOdd = (_acc:, x) => x % 2 === 1;
|
556
|
-
*
|
557
|
-
* const xs = V.vector(1, 3, 5, 60, 777, 800);
|
558
|
-
* foldlWhile(isOdd, (n, m) => n + m, 0, xs) //=> 9
|
559
|
-
*
|
560
|
-
* const ys = V.vector(2, 4, 6);
|
561
|
-
* foldlWhile(isOdd, (n, m) => n + m, 111, ys) //=> 111
|
562
|
-
*/
|
563
|
-
function foldWhileCb<A, B>(a: A, state: FoldWhileState<A, B>, i: number): boolean {
|
564
|
-
if (state.predicate(state.result) === false) {
|
565
|
-
return false;
|
566
|
-
}
|
567
|
-
state.result = state.f(i, state.result, a);
|
568
|
-
return true;
|
498
|
+
/**
|
499
|
+
* Folds a function over a Vector. Left-associative.
|
500
|
+
*
|
501
|
+
* @tsplus pipeable fncts.Vector foldLeft
|
502
|
+
*/
|
503
|
+
export function foldLeft<A, B>(initial: B, f: (acc: B, a: A) => B) {
|
504
|
+
return (self: Vector<A>): B => {
|
505
|
+
return self.foldLeftWithIndex(initial, (_, b, a) => f(b, a));
|
506
|
+
};
|
569
507
|
}
|
570
508
|
|
571
509
|
/**
|
@@ -581,15 +519,17 @@ export function foldLeftWhile<A, B>(b: B, cont: Predicate<B>, f: (i: number, b:
|
|
581
519
|
}
|
582
520
|
|
583
521
|
/**
|
584
|
-
* @tsplus pipeable fncts.Vector
|
522
|
+
* @tsplus pipeable fncts.Vector foldLeftWithIndex
|
585
523
|
*/
|
586
|
-
export function
|
524
|
+
export function foldLeftWithIndex<A, B>(b: B, f: (i: number, b: B, a: A) => B) {
|
587
525
|
return (self: Vector<A>): B => {
|
588
|
-
|
589
|
-
|
590
|
-
|
591
|
-
|
592
|
-
|
526
|
+
const suffixSize = getSuffixSize(self);
|
527
|
+
const prefixSize = getPrefixSize(self);
|
528
|
+
let [acc, index] = foldLeftPrefix(f, b, self.prefix, prefixSize);
|
529
|
+
if (self.root !== undefined) {
|
530
|
+
[acc, index] = foldLeftNode(f, acc, self.root, getDepth(self), index);
|
531
|
+
}
|
532
|
+
return foldLeftSuffix(f, acc, self.suffix, suffixSize, index)[0];
|
593
533
|
};
|
594
534
|
}
|
595
535
|
|
@@ -623,6 +563,19 @@ export function foldRight<A, B>(initial: B, f: (value: A, acc: B) => B) {
|
|
623
563
|
};
|
624
564
|
}
|
625
565
|
|
566
|
+
/**
|
567
|
+
* @tsplus pipeable fncts.Vector foldRightWhile
|
568
|
+
*/
|
569
|
+
export function foldRightWhile<A, B>(b: B, cont: Predicate<B>, f: (i: number, a: A, b: B) => B) {
|
570
|
+
return (self: Vector<A>): B => {
|
571
|
+
return foldRightCb<A, FoldWhileState<A, B>>(
|
572
|
+
foldWhileCb,
|
573
|
+
{ predicate: cont, result: b, f: (i, b, a) => f(i, a, b) },
|
574
|
+
self,
|
575
|
+
).result;
|
576
|
+
};
|
577
|
+
}
|
578
|
+
|
626
579
|
/**
|
627
580
|
* Folds a function over a Vector. Right-associative.
|
628
581
|
*
|
@@ -641,6 +594,28 @@ export function foldRightWithIndex<A, B>(b: B, f: (i: number, a: A, b: B) => B)
|
|
641
594
|
};
|
642
595
|
}
|
643
596
|
|
597
|
+
/**
|
598
|
+
* Similar to `foldl`. But, for each element it calls the predicate function
|
599
|
+
* _before_ the folding function and stops folding if it returns `false`.
|
600
|
+
*
|
601
|
+
*
|
602
|
+
* @example
|
603
|
+
* const isOdd = (_acc:, x) => x % 2 === 1;
|
604
|
+
*
|
605
|
+
* const xs = V.vector(1, 3, 5, 60, 777, 800);
|
606
|
+
* foldlWhile(isOdd, (n, m) => n + m, 0, xs) //=> 9
|
607
|
+
*
|
608
|
+
* const ys = V.vector(2, 4, 6);
|
609
|
+
* foldlWhile(isOdd, (n, m) => n + m, 111, ys) //=> 111
|
610
|
+
*/
|
611
|
+
function foldWhileCb<A, B>(a: A, state: FoldWhileState<A, B>, i: number): boolean {
|
612
|
+
if (state.predicate(state.result) === false) {
|
613
|
+
return false;
|
614
|
+
}
|
615
|
+
state.result = state.f(i, state.result, a);
|
616
|
+
return true;
|
617
|
+
}
|
618
|
+
|
644
619
|
/**
|
645
620
|
* Invokes a given callback for each element in the Vector from left to
|
646
621
|
* right. Returns `undefined`.
|
@@ -668,6 +643,29 @@ export function forEachWithIndex<A>(f: (i: number, a: A) => void) {
|
|
668
643
|
};
|
669
644
|
}
|
670
645
|
|
646
|
+
/**
|
647
|
+
* Converts an array, an array-like, or an iterable into a Vector.
|
648
|
+
*
|
649
|
+
* @complexity O(n)
|
650
|
+
* @tsplus static fncts.VectorOps from
|
651
|
+
*/
|
652
|
+
export function from<A>(sequence: A[] | ArrayLike<A> | Iterable<A>): Vector<A>;
|
653
|
+
export function from<A>(sequence: any): Vector<A> {
|
654
|
+
const l = emptyPushable<A>();
|
655
|
+
if (sequence.length > 0 && (sequence[0] !== undefined || 0 in sequence)) {
|
656
|
+
for (let i = 0; i < sequence.length; ++i) {
|
657
|
+
l.push(sequence[i]);
|
658
|
+
}
|
659
|
+
} else if (Symbol.iterator in sequence) {
|
660
|
+
const iterator = sequence[Symbol.iterator]();
|
661
|
+
let cur;
|
662
|
+
while (!(cur = iterator.next()).done) {
|
663
|
+
l.push(cur.value);
|
664
|
+
}
|
665
|
+
}
|
666
|
+
return l;
|
667
|
+
}
|
668
|
+
|
671
669
|
/**
|
672
670
|
* Gets the nth element of the Vector. If `n` is out of bounds
|
673
671
|
* `undefined` is returned.
|
@@ -729,17 +727,6 @@ export function includes<A>(element: A) {
|
|
729
727
|
};
|
730
728
|
}
|
731
729
|
|
732
|
-
type IndexOfState = {
|
733
|
-
element: any;
|
734
|
-
found: boolean;
|
735
|
-
index: number;
|
736
|
-
};
|
737
|
-
|
738
|
-
function indexOfCb(value: any, state: IndexOfState): boolean {
|
739
|
-
++state.index;
|
740
|
-
return !(state.found = Equatable.strictEquals(value, state.element));
|
741
|
-
}
|
742
|
-
|
743
730
|
/**
|
744
731
|
* Returns the index of the _first_ element in the Vector that is equal
|
745
732
|
* to the given element. If no such element is found `-1` is returned.
|
@@ -755,16 +742,9 @@ export function indexOf<A>(element: A) {
|
|
755
742
|
};
|
756
743
|
}
|
757
744
|
|
758
|
-
|
759
|
-
|
760
|
-
|
761
|
-
* @complexity O(log(n))
|
762
|
-
* @tsplus pipeable fncts.Vector insertAt
|
763
|
-
*/
|
764
|
-
export function insertAt<A>(index: number, element: A) {
|
765
|
-
return (self: Vector<A>): Vector<A> => {
|
766
|
-
return self.slice(0, index).append(element).concat(self.slice(index, self.length));
|
767
|
-
};
|
745
|
+
function indexOfCb(value: any, state: IndexOfState): boolean {
|
746
|
+
++state.index;
|
747
|
+
return !(state.found = Equatable.strictEquals(value, state.element));
|
768
748
|
}
|
769
749
|
|
770
750
|
/**
|
@@ -779,6 +759,18 @@ export function insertAllAt<A>(index: number, elements: Vector<A>) {
|
|
779
759
|
};
|
780
760
|
}
|
781
761
|
|
762
|
+
/**
|
763
|
+
* Inserts the given element at the given index in the Vector.
|
764
|
+
*
|
765
|
+
* @complexity O(log(n))
|
766
|
+
* @tsplus pipeable fncts.Vector insertAt
|
767
|
+
*/
|
768
|
+
export function insertAt<A>(index: number, element: A) {
|
769
|
+
return (self: Vector<A>): Vector<A> => {
|
770
|
+
return self.slice(0, index).append(element).concat(self.slice(index, self.length));
|
771
|
+
};
|
772
|
+
}
|
773
|
+
|
782
774
|
/**
|
783
775
|
* Inserts a separator between each element in a Vector.
|
784
776
|
*
|
@@ -855,19 +847,6 @@ export function makeBy<A>(n: number, f: (index: number) => A): Vector<A> {
|
|
855
847
|
return l;
|
856
848
|
}
|
857
849
|
|
858
|
-
/**
|
859
|
-
* @tsplus pipeable fncts.Vector mapAccum
|
860
|
-
*/
|
861
|
-
export function mapAccum<A, S, B>(s: S, f: (s: S, a: A) => readonly [B, S]) {
|
862
|
-
return (self: Vector<A>): readonly [Vector<B>, S] => {
|
863
|
-
return self.foldLeft([Vector.emptyPushable(), s], ([acc, s], a) => {
|
864
|
-
const r = f(s, a);
|
865
|
-
acc.push(r[0]);
|
866
|
-
return [acc, r[1]];
|
867
|
-
});
|
868
|
-
};
|
869
|
-
}
|
870
|
-
|
871
850
|
/**
|
872
851
|
* Applies a function to each element in the given Vector and returns a
|
873
852
|
* new Vector of the values that the function return.
|
@@ -881,6 +860,19 @@ export function map<A, B>(f: (a: A) => B) {
|
|
881
860
|
};
|
882
861
|
}
|
883
862
|
|
863
|
+
/**
|
864
|
+
* @tsplus pipeable fncts.Vector mapAccum
|
865
|
+
*/
|
866
|
+
export function mapAccum<A, S, B>(s: S, f: (s: S, a: A) => readonly [B, S]) {
|
867
|
+
return (self: Vector<A>): readonly [Vector<B>, S] => {
|
868
|
+
return self.foldLeft([Vector.emptyPushable(), s], ([acc, s], a) => {
|
869
|
+
const r = f(s, a);
|
870
|
+
acc.push(r[0]);
|
871
|
+
return [acc, r[1]];
|
872
|
+
});
|
873
|
+
};
|
874
|
+
}
|
875
|
+
|
884
876
|
/**
|
885
877
|
* Applies a function to each element in the given Vector and returns a
|
886
878
|
* new Vector of the values that the function return.
|
@@ -901,13 +893,6 @@ export function mapWithIndex<A, B>(f: (i: number, a: A) => B) {
|
|
901
893
|
};
|
902
894
|
}
|
903
895
|
|
904
|
-
/**
|
905
|
-
* @tsplus getter fncts.Vector mutableClone
|
906
|
-
*/
|
907
|
-
export function mutableClone<A>(self: Vector<A>): MutableVector<A> {
|
908
|
-
return new Vector(self.bits, self.offset, self.length, self.prefix, self.root, self.suffix) as any;
|
909
|
-
}
|
910
|
-
|
911
896
|
/**
|
912
897
|
* Returns a Vector that has the entry specified by the index replaced with
|
913
898
|
* the value returned by applying the function to the value.
|
@@ -928,6 +913,13 @@ export function modifyAt<A>(i: number, f: (a: A) => A) {
|
|
928
913
|
};
|
929
914
|
}
|
930
915
|
|
916
|
+
/**
|
917
|
+
* @tsplus getter fncts.Vector mutableClone
|
918
|
+
*/
|
919
|
+
export function mutableClone<A>(self: Vector<A>): MutableVector<A> {
|
920
|
+
return new Vector(self.bits, self.offset, self.length, self.prefix, self.root, self.suffix) as any;
|
921
|
+
}
|
922
|
+
|
931
923
|
/**
|
932
924
|
* Returns `true` if and only if the predicate function returns
|
933
925
|
* `false` for every element in the given Vector.
|
@@ -1187,6 +1179,24 @@ export function slice(from: number, to: number) {
|
|
1187
1179
|
};
|
1188
1180
|
}
|
1189
1181
|
|
1182
|
+
/**
|
1183
|
+
* Returns true if and only if there exists an element in the Vector for
|
1184
|
+
* which the predicate returns true.
|
1185
|
+
*
|
1186
|
+
* @complexity O(n)
|
1187
|
+
*
|
1188
|
+
* @tsplus pipeable fncts.Vector some
|
1189
|
+
*/
|
1190
|
+
export function some<A>(predicate: Predicate<A>) {
|
1191
|
+
return (self: Vector<A>): boolean => {
|
1192
|
+
return foldLeftCb<A, PredState>(someCb, { predicate, result: false }, self).result;
|
1193
|
+
};
|
1194
|
+
}
|
1195
|
+
|
1196
|
+
function someCb<A>(value: A, state: PredState): boolean {
|
1197
|
+
return !(state.result = state.predicate(value));
|
1198
|
+
}
|
1199
|
+
|
1190
1200
|
/**
|
1191
1201
|
* @tsplus pipeable fncts.Vector sort
|
1192
1202
|
*/
|
@@ -1282,22 +1292,6 @@ export function take(n: number) {
|
|
1282
1292
|
};
|
1283
1293
|
}
|
1284
1294
|
|
1285
|
-
/**
|
1286
|
-
* Takes the first elements in the Vector for which the predicate returns
|
1287
|
-
* `true`.
|
1288
|
-
*
|
1289
|
-
* @complexity `O(k + log(n))` where `k` is the number of elements satisfying
|
1290
|
-
* the predicate.
|
1291
|
-
*
|
1292
|
-
* @tsplus pipeable fncts.Vector takeWhile
|
1293
|
-
*/
|
1294
|
-
export function takeWhile<A>(predicate: Predicate<A>) {
|
1295
|
-
return (self: Vector<A>): Vector<A> => {
|
1296
|
-
const { index } = foldLeftCb(findNotIndexCb, { predicate, index: 0 }, self);
|
1297
|
-
return self.slice(0, index);
|
1298
|
-
};
|
1299
|
-
}
|
1300
|
-
|
1301
1295
|
/**
|
1302
1296
|
* Takes the last `n` elements from a Vector and returns them in a new
|
1303
1297
|
* Vector.
|
@@ -1327,6 +1321,22 @@ export function takeLastWhile<A>(predicate: Predicate<A>) {
|
|
1327
1321
|
};
|
1328
1322
|
}
|
1329
1323
|
|
1324
|
+
/**
|
1325
|
+
* Takes the first elements in the Vector for which the predicate returns
|
1326
|
+
* `true`.
|
1327
|
+
*
|
1328
|
+
* @complexity `O(k + log(n))` where `k` is the number of elements satisfying
|
1329
|
+
* the predicate.
|
1330
|
+
*
|
1331
|
+
* @tsplus pipeable fncts.Vector takeWhile
|
1332
|
+
*/
|
1333
|
+
export function takeWhile<A>(predicate: Predicate<A>) {
|
1334
|
+
return (self: Vector<A>): Vector<A> => {
|
1335
|
+
const { index } = foldLeftCb(findNotIndexCb, { predicate, index: 0 }, self);
|
1336
|
+
return self.slice(0, index);
|
1337
|
+
};
|
1338
|
+
}
|
1339
|
+
|
1330
1340
|
/**
|
1331
1341
|
* Converts a Vector into an array.
|
1332
1342
|
*
|
@@ -1351,17 +1361,28 @@ export function toList<A>(self: Vector<A>): List<A> {
|
|
1351
1361
|
return buffer.toList;
|
1352
1362
|
}
|
1353
1363
|
|
1364
|
+
/**
|
1365
|
+
* @tsplus getter fncts.Vector traverse
|
1366
|
+
*/
|
1367
|
+
export function traverse_<A>(self: Vector<A>) {
|
1368
|
+
return <G extends HKT, GC = HKT.None>(G: P.Applicative<G, GC>) =>
|
1369
|
+
<K, Q, W, X, I, S, R, E, B>(
|
1370
|
+
f: (a: A) => HKT.Kind<G, GC, K, Q, W, X, I, S, R, E, B>,
|
1371
|
+
): HKT.Kind<G, GC, K, Q, W, X, I, S, R, E, Vector<B>> =>
|
1372
|
+
self.traverseWithIndex(G)((_, a) => f(a));
|
1373
|
+
}
|
1354
1374
|
/**
|
1355
1375
|
* @tsplus getter fncts.Vector traverseWithIndex
|
1356
1376
|
*/
|
1357
|
-
export function
|
1377
|
+
export function traverseWithIndex_<A>(
|
1358
1378
|
self: Vector<A>,
|
1359
1379
|
): <G extends HKT, GC = HKT.None>(
|
1360
1380
|
G: P.Applicative<G, GC>,
|
1361
1381
|
) => <K, Q, W, X, I, S, R, E, B>(
|
1362
1382
|
f: (i: number, a: A) => HKT.Kind<G, GC, K, Q, W, X, I, S, R, E, B>,
|
1363
1383
|
) => HKT.Kind<G, GC, K, Q, W, X, I, S, R, E, Vector<B>>;
|
1364
|
-
|
1384
|
+
|
1385
|
+
export function traverseWithIndex_<A>(
|
1365
1386
|
self: Vector<A>,
|
1366
1387
|
): <G>(G: P.Applicative<HKT.F<G>>) => <B>(f: (i: number, a: A) => HKT.FK1<G, B>) => HKT.FK1<G, Vector<B>> {
|
1367
1388
|
return (G) => (f) =>
|
@@ -1375,34 +1396,12 @@ export function _traverseWithIndex<A>(
|
|
1375
1396
|
);
|
1376
1397
|
}
|
1377
1398
|
|
1378
|
-
/**
|
1379
|
-
* @tsplus getter fncts.Vector traverse
|
1380
|
-
*/
|
1381
|
-
export function _traverse<A>(self: Vector<A>) {
|
1382
|
-
return <G extends HKT, GC = HKT.None>(G: P.Applicative<G, GC>) =>
|
1383
|
-
<K, Q, W, X, I, S, R, E, B>(
|
1384
|
-
f: (a: A) => HKT.Kind<G, GC, K, Q, W, X, I, S, R, E, B>,
|
1385
|
-
): HKT.Kind<G, GC, K, Q, W, X, I, S, R, E, Vector<B>> =>
|
1386
|
-
self.traverseWithIndex(G)((_, a) => f(a));
|
1387
|
-
}
|
1388
|
-
|
1389
1399
|
export const traverseWithIndex: P.TraversableWithIndex<VectorF>["traverseWithIndex"] = (G) => (f) => (self) =>
|
1390
1400
|
self.traverseWithIndex(G)(f);
|
1391
1401
|
|
1392
1402
|
export const traverse: Traversable<VectorF>["traverse"] = (G) => (f) => (self) =>
|
1393
1403
|
self.traverseWithIndex(G)((_, a) => f(a));
|
1394
1404
|
|
1395
|
-
/**
|
1396
|
-
* Returns a new Vector without repeated elements by using the given
|
1397
|
-
* Eq instance to determine when elements are equal
|
1398
|
-
*
|
1399
|
-
* @complexity `O(n)`
|
1400
|
-
* @tsplus pipeable fncts.Vector uniq
|
1401
|
-
*/
|
1402
|
-
export function uniq<A>(E: Eq<A>) {
|
1403
|
-
return (self: Vector<A>) => self.dropRepeatsWith((a, b) => E.equals(b)(a));
|
1404
|
-
}
|
1405
|
-
|
1406
1405
|
/**
|
1407
1406
|
* @tsplus static fncts.VectorOps unfold
|
1408
1407
|
*/
|
@@ -1423,13 +1422,15 @@ export function unfold<A, B>(b: B, f: (b: B) => Maybe<readonly [A, B]>): Vector<
|
|
1423
1422
|
return out;
|
1424
1423
|
}
|
1425
1424
|
|
1426
|
-
|
1427
|
-
|
1428
|
-
|
1429
|
-
|
1430
|
-
|
1431
|
-
|
1432
|
-
|
1425
|
+
/**
|
1426
|
+
* Returns a new Vector without repeated elements by using the given
|
1427
|
+
* Eq instance to determine when elements are equal
|
1428
|
+
*
|
1429
|
+
* @complexity `O(n)`
|
1430
|
+
* @tsplus pipeable fncts.Vector uniq
|
1431
|
+
*/
|
1432
|
+
export function uniq<A>(E: Eq<A>) {
|
1433
|
+
return (self: Vector<A>) => self.dropRepeatsWith((a, b) => E.equals(b)(a));
|
1433
1434
|
}
|
1434
1435
|
|
1435
1436
|
/**
|