NonEmptyArray
Instances
- Alt
- Applicative
- Apply
- Chain
- Comonad
- Foldable
- FoldableWithIndex
- Functor
- FunctorWithIndex
- Monad
- Pointed
- Traversable
- TraversableWithIndex
- getEq
- getSemigroup
- getShow
Constructors
Conversions
Do notation
Error handling
Folding
Legacy
Mapping
Model
Pattern matching
Sequencing
Traversing
Type lambdas
Utilities
- ap
- apFirst
- apSecond
- chop
- chunksOf
- concat
- concatAll
- concatW
cons(deprecated)- copy
- duplicate
- extend
- extract
filter(deprecated)filterWithIndex(deprecated)fold(deprecated)- getUnionSemigroup
- group
- groupBy
groupSort(deprecated)- head
- init
- insertAt
- intercalate
- intersperse
- last
- let
- max
- min
- modifyAt
- modifyHead
- modifyLast
nonEmptyArray(deprecated)- prependAll
prependToAll(deprecated)- reverse
- rotate
snoc(deprecated)- sort
- sortBy
- splitAt
- tail
- unappend
uncons(deprecated)- union
- uniq
- unprepend
unsnoc(deprecated)- unzip
- updateAt
- updateHead
- updateLast
- zip
- zipWith
Instances
Alt
Signature
export declare const Alt: Alt1<URI>
Details
- Added in 0.1.0
License
- MIT – Copyright (c) 2017-present Giulio Canti
Applicative
Signature
export declare const Applicative: Applicative1<URI>
Details
- Added in 0.1.0
License
- MIT – Copyright (c) 2017-present Giulio Canti
Apply
Signature
export declare const Apply: Apply1<URI>
Details
- Added in 0.1.0
License
- MIT – Copyright (c) 2017-present Giulio Canti
Chain
Signature
export declare const Chain: Chain1<URI>
Details
- Added in 0.1.0
License
- MIT – Copyright (c) 2017-present Giulio Canti
Comonad
Signature
export declare const Comonad: Comonad1<URI>
Details
- Added in 0.1.0
License
- MIT – Copyright (c) 2017-present Giulio Canti
Foldable
Signature
export declare const Foldable: Foldable1<URI>
Details
- Added in 0.1.0
License
- MIT – Copyright (c) 2017-present Giulio Canti
FoldableWithIndex
Signature
export declare const FoldableWithIndex: FoldableWithIndex1<URI, number>
Details
- Added in 0.1.0
License
- MIT – Copyright (c) 2017-present Giulio Canti
Functor
Signature
export declare const Functor: Functor1<URI>
Details
- Added in 0.1.0
License
- MIT – Copyright (c) 2017-present Giulio Canti
FunctorWithIndex
Signature
export declare const FunctorWithIndex: FunctorWithIndex1<URI, number>
Details
- Added in 0.1.0
License
- MIT – Copyright (c) 2017-present Giulio Canti
Monad
Signature
export declare const Monad: Monad1<URI>
Details
- Added in 0.1.0
License
- MIT – Copyright (c) 2017-present Giulio Canti
Pointed
Signature
export declare const Pointed: Pointed1<URI>
Details
- Added in 0.1.0
License
- MIT – Copyright (c) 2017-present Giulio Canti
Traversable
Signature
export declare const Traversable: Traversable1<URI>
Details
- Added in 0.1.0
License
- MIT – Copyright (c) 2017-present Giulio Canti
TraversableWithIndex
Signature
export declare const TraversableWithIndex: TraversableWithIndex1<URI, number>
Details
- Added in 0.1.0
License
- MIT – Copyright (c) 2017-present Giulio Canti
getEq
Signature
export declare const getEq: <A>(E: Eq<A>) => Eq<NonEmptyArray<A>>
Details
- Added in 0.1.0
Example
import { getEq } from '@fp-tx/core/NonEmptyArray'
import * as N from '@fp-tx/core/number'
const E = getEq(N.Eq)
assert.strictEqual(E.equals([1, 2], [1, 2]), true)
assert.strictEqual(E.equals([1, 2], [1, 3]), false)
License
- MIT – Copyright (c) 2017-present Giulio Canti
getSemigroup
Builds a Semigroup
instance for NonEmptyArray
Signature
export declare const getSemigroup: <A = never>() => Semigroup<NonEmptyArray<A>>
Details
- Added in 0.1.0
License
- MIT – Copyright (c) 2017-present Giulio Canti
getShow
Signature
export declare const getShow: <A>(S: Show<A>) => Show<NonEmptyArray<A>>
Details
- Added in 0.1.0
License
- MIT – Copyright (c) 2017-present Giulio Canti
Constructors
makeBy
Return a NonEmptyArray
of length n
with element i
initialized with f(i)
.
Note. n
is normalized to a natural number.
Signature
export declare const makeBy: <A>(f: (i: number) => A) => (n: number) => NonEmptyArray<A>
Details
- Added in 0.1.0
Example
import { makeBy } from '@fp-tx/core/NonEmptyArray'
import { pipe } from '@fp-tx/core/function'
const double = (n: number): number => n * 2
assert.deepStrictEqual(pipe(5, makeBy(double)), [0, 2, 4, 6, 8])
License
- MIT – Copyright (c) 2017-present Giulio Canti
of
Signature
export declare const of: <A>(a: A) => NonEmptyArray<A>
Details
- Added in 0.1.0
License
- MIT – Copyright (c) 2017-present Giulio Canti
range
Create a NonEmptyArray
containing a range of integers, including both endpoints.
Signature
export declare const range: (start: number, end: number) => NonEmptyArray<number>
Details
- Added in 0.1.0
Example
import { range } from '@fp-tx/core/NonEmptyArray'
assert.deepStrictEqual(range(1, 5), [1, 2, 3, 4, 5])
License
- MIT – Copyright (c) 2017-present Giulio Canti
replicate
Create a NonEmptyArray
containing a value repeated the specified number of times.
Note. n
is normalized to a natural number.
Signature
export declare const replicate: <A>(a: A) => (n: number) => RNEA.ReadonlyNonEmptyArray<A>
Details
- Added in 0.1.0
Example
import { replicate } from '@fp-tx/core/NonEmptyArray'
import { pipe } from '@fp-tx/core/function'
assert.deepStrictEqual(pipe(3, replicate('a')), ['a', 'a', 'a'])
License
- MIT – Copyright (c) 2017-present Giulio Canti
Conversions
fromArray
Builds a NonEmptyArray
from an Array
returning none
if as
is an empty array
Signature
export declare const fromArray: <A>(as: A[]) => Option<NonEmptyArray<A>>
Details
- Added in 0.1.0
License
- MIT – Copyright (c) 2017-present Giulio Canti
fromReadonlyNonEmptyArray
Signature
export declare const fromReadonlyNonEmptyArray: <A>(as: ReadonlyNonEmptyArray<A>) => NonEmptyArray<A>
Details
- Added in 0.1.0
License
- MIT – Copyright (c) 2017-present Giulio Canti
Do notation
Do
Signature
export declare const Do: NonEmptyArray<{}>
Details
- Added in 0.1.0
License
- MIT – Copyright (c) 2017-present Giulio Canti
apS
Signature
export declare const apS: <N extends string, A, B>(
name: Exclude<N, keyof A>,
fb: NonEmptyArray<B>,
) => (fa: NonEmptyArray<A>) => NonEmptyArray<{ readonly [K in N | keyof A]: K extends keyof A ? A[K] : B }>
Details
- Added in 0.1.0
License
- MIT – Copyright (c) 2017-present Giulio Canti
bind
Signature
export declare const bind: <N extends string, A, B>(
name: Exclude<N, keyof A>,
f: (a: A) => NonEmptyArray<B>,
) => (ma: NonEmptyArray<A>) => NonEmptyArray<{ readonly [K in N | keyof A]: K extends keyof A ? A[K] : B }>
Details
- Added in 0.1.0
License
- MIT – Copyright (c) 2017-present Giulio Canti
bindTo
Signature
export declare const bindTo: <N extends string>(
name: N,
) => <A>(fa: NonEmptyArray<A>) => NonEmptyArray<{ readonly [K in N]: A }>
Details
- Added in 0.1.0
License
- MIT – Copyright (c) 2017-present Giulio Canti
Error handling
alt
Identifies an associative operation on a type constructor. It is similar to Semigroup
, except that it applies to types of kind * -> *
.
In case of NonEmptyArray
concatenates the inputs into a single array.
Signature
export declare const alt: <A>(that: LazyArg<NonEmptyArray<A>>) => (fa: NonEmptyArray<A>) => NonEmptyArray<A>
Details
- Added in 0.1.0
Example
import * as NEA from '@fp-tx/core/NonEmptyArray'
import { pipe } from '@fp-tx/core/function'
assert.deepStrictEqual(
pipe(
[1, 2, 3],
NEA.alt(() => [4, 5]),
),
[1, 2, 3, 4, 5],
)
License
- MIT – Copyright (c) 2017-present Giulio Canti
altW
Less strict version of alt
.
The W
suffix (short for Widening) means that the return types will be merged.
Signature
export declare const altW: <B>(that: LazyArg<NonEmptyArray<B>>) => <A>(as: NonEmptyArray<A>) => NonEmptyArray<B | A>
Details
- Added in 0.1.0
Example
import * as NEA from '@fp-tx/core/NonEmptyArray'
import { pipe } from '@fp-tx/core/function'
assert.deepStrictEqual(
pipe(
[1, 2, 3] as NEA.NonEmptyArray<number>,
NEA.altW(() => ['a', 'b']),
),
[1, 2, 3, 'a', 'b'],
)
License
- MIT – Copyright (c) 2017-present Giulio Canti
Folding
foldMap
Signature
export declare const foldMap: <S>(S: Semigroup<S>) => <A>(f: (a: A) => S) => (fa: NonEmptyArray<A>) => S
Details
- Added in 0.1.0
License
- MIT – Copyright (c) 2017-present Giulio Canti
foldMapWithIndex
Signature
export declare const foldMapWithIndex: <S>(
S: Semigroup<S>,
) => <A>(f: (i: number, a: A) => S) => (fa: NonEmptyArray<A>) => S
Details
- Added in 0.1.0
License
- MIT – Copyright (c) 2017-present Giulio Canti
reduce
Signature
export declare const reduce: <A, B>(b: B, f: (b: B, a: A) => B) => (fa: NonEmptyArray<A>) => B
Details
- Added in 0.1.0
License
- MIT – Copyright (c) 2017-present Giulio Canti
reduceRight
Signature
export declare const reduceRight: <A, B>(b: B, f: (a: A, b: B) => B) => (fa: NonEmptyArray<A>) => B
Details
- Added in 0.1.0
License
- MIT – Copyright (c) 2017-present Giulio Canti
reduceRightWithIndex
Signature
export declare const reduceRightWithIndex: <A, B>(b: B, f: (i: number, a: A, b: B) => B) => (fa: NonEmptyArray<A>) => B
Details
- Added in 0.1.0
License
- MIT – Copyright (c) 2017-present Giulio Canti
reduceWithIndex
Signature
export declare const reduceWithIndex: <A, B>(b: B, f: (i: number, b: B, a: A) => B) => (fa: NonEmptyArray<A>) => B
Details
- Added in 0.1.0
License
- MIT – Copyright (c) 2017-present Giulio Canti
Legacy
chain
Alias of flatMap
.
Signature
export declare const chain: <A, B>(f: (a: A) => NonEmptyArray<B>) => (ma: NonEmptyArray<A>) => NonEmptyArray<B>
Details
- Added in 0.1.0
License
- MIT – Copyright (c) 2017-present Giulio Canti
Mapping
flap
Signature
export declare const flap: <A>(a: A) => <B>(fab: NonEmptyArray<(a: A) => B>) => NonEmptyArray<B>
Details
- Added in 0.1.0
License
- MIT – Copyright (c) 2017-present Giulio Canti
map
map
can be used to turn functions (a: A) => B
into functions (fa: F<A>) => F<B>
whose argument and return types use the type constructor F
to represent some computational context.
Signature
export declare const map: <A, B>(f: (a: A) => B) => (as: NonEmptyArray<A>) => NonEmptyArray<B>
Details
- Added in 0.1.0
License
- MIT – Copyright (c) 2017-present Giulio Canti
mapWithIndex
Signature
export declare const mapWithIndex: <A, B>(f: (i: number, a: A) => B) => (as: NonEmptyArray<A>) => NonEmptyArray<B>
Details
- Added in 0.1.0
License
- MIT – Copyright (c) 2017-present Giulio Canti
Model
NonEmptyArray
Signature
export interface NonEmptyArray<A> extends Array<A> {
0: A
}
Details
- Added in 0.1.0
License
- MIT – Copyright (c) 2017-present Giulio Canti
Pattern matching
matchLeft
Break an Array
into its first element and remaining elements.
Signature
export declare const matchLeft: <A, B>(f: (head: A, tail: A[]) => B) => (as: NonEmptyArray<A>) => B
Details
- Added in 0.1.0
License
- MIT – Copyright (c) 2017-present Giulio Canti
matchRight
Break an Array
into its initial elements and the last element.
Signature
export declare const matchRight: <A, B>(f: (init: A[], last: A) => B) => (as: NonEmptyArray<A>) => B
Details
- Added in 0.1.0
License
- MIT – Copyright (c) 2017-present Giulio Canti
Sequencing
chainFirst
Composes computations in sequence, using the return value of one computation to determine the next computation and keeping only the result of the first.
Signature
export declare const chainFirst: <A, B>(f: (a: A) => NonEmptyArray<B>) => (first: NonEmptyArray<A>) => NonEmptyArray<A>
Details
- Added in 0.1.0
License
- MIT – Copyright (c) 2017-present Giulio Canti
chainWithIndex
Signature
export declare const chainWithIndex: <A, B>(
f: (i: number, a: A) => NonEmptyArray<B>,
) => (as: NonEmptyArray<A>) => NonEmptyArray<B>
Details
- Added in 0.1.0
License
- MIT – Copyright (c) 2017-present Giulio Canti
flatMap
Signature
export declare const flatMap: {
<A, B>(f: (a: A, i: number) => NonEmptyArray<B>): (ma: NonEmptyArray<A>) => NonEmptyArray<B>
<A, B>(ma: NonEmptyArray<A>, f: (a: A, i: number) => NonEmptyArray<B>): NonEmptyArray<B>
}
Details
- Added in 0.1.0
Example
import * as NEA from '@fp-tx/core/NonEmptyArray'
import { pipe } from '@fp-tx/core/function'
assert.deepStrictEqual(
pipe(
[1, 2, 3],
NEA.flatMap(n => [`a${n}`, `b${n}`]),
),
['a1', 'b1', 'a2', 'b2', 'a3', 'b3'],
)
License
- MIT – Copyright (c) 2017-present Giulio Canti
flatten
Signature
export declare const flatten: <A>(mma: NonEmptyArray<NonEmptyArray<A>>) => NonEmptyArray<A>
Details
- Added in 0.1.0
License
- MIT – Copyright (c) 2017-present Giulio Canti
traverseWithIndex
Signature
export declare const traverseWithIndex: PipeableTraverseWithIndex1<URI, number>
Details
- Added in 0.1.0
License
- MIT – Copyright (c) 2017-present Giulio Canti
Traversing
sequence
Signature
export declare const sequence: Traversable1<URI>['sequence']
Details
- Added in 0.1.0
License
- MIT – Copyright (c) 2017-present Giulio Canti
traverse
Signature
export declare const traverse: PipeableTraverse1<URI>
Details
- Added in 0.1.0
License
- MIT – Copyright (c) 2017-present Giulio Canti
Type lambdas
URI
Signature
export type URI = typeof URI
Details
- Added in 0.1.0
License
- MIT – Copyright (c) 2017-present Giulio Canti
URI
Signature
export declare const URI = 'NonEmptyArray'
Details
- Added in 0.1.0
License
- MIT – Copyright (c) 2017-present Giulio Canti
Utilities
ap
Apply a function to an argument under a type constructor.
Signature
export declare const ap: <A>(as: NonEmptyArray<A>) => <B>(fab: NonEmptyArray<(a: A) => B>) => NonEmptyArray<B>
Details
- Added in 0.1.0
License
- MIT – Copyright (c) 2017-present Giulio Canti
apFirst
Combine two effectful actions, keeping only the result of the first.
Signature
export declare const apFirst: <B>(second: NonEmptyArray<B>) => <A>(first: NonEmptyArray<A>) => NonEmptyArray<A>
Details
- Added in 0.1.0
License
- MIT – Copyright (c) 2017-present Giulio Canti
apSecond
Combine two effectful actions, keeping only the result of the second.
Signature
export declare const apSecond: <B>(second: NonEmptyArray<B>) => <A>(first: NonEmptyArray<A>) => NonEmptyArray<B>
Details
- Added in 0.1.0
License
- MIT – Copyright (c) 2017-present Giulio Canti
chop
Signature
export declare const chop: <A, B>(f: (as: NonEmptyArray<A>) => [B, A[]]) => (as: NonEmptyArray<A>) => NonEmptyArray<B>
Details
- Added in 0.1.0
License
- MIT – Copyright (c) 2017-present Giulio Canti
chunksOf
Signature
export declare const chunksOf: (n: number) => <A>(as: NonEmptyArray<A>) => NonEmptyArray<NonEmptyArray<A>>
Details
- Added in 0.1.0
License
- MIT – Copyright (c) 2017-present Giulio Canti
concat
Signature
export declare function concat<A>(second: NonEmptyArray<A>): (first: Array<A>) => NonEmptyArray<A>
export declare function concat<A>(second: Array<A>): (first: NonEmptyArray<A>) => NonEmptyArray<A>
export declare function concat<A>(first: Array<A>, second: NonEmptyArray<A>): NonEmptyArray<A>
export declare function concat<A>(first: NonEmptyArray<A>, second: Array<A>): NonEmptyArray<A>
Details
- Added in 0.1.0
License
- MIT – Copyright (c) 2017-present Giulio Canti
concatAll
Signature
export declare const concatAll: <A>(S: Semigroup<A>) => (as: NonEmptyArray<A>) => A
Details
- Added in 0.1.0
License
- MIT – Copyright (c) 2017-present Giulio Canti
concatW
Signature
export declare function concatW<B>(second: NonEmptyArray<B>): <A>(first: Array<A>) => NonEmptyArray<A | B>
export declare function concatW<B>(second: Array<B>): <A>(first: NonEmptyArray<A>) => NonEmptyArray<A | B>
Details
- Added in 0.1.0
License
- MIT – Copyright (c) 2017-present Giulio Canti
cons
cons
Use prepend
instead.
Signature
export declare function cons<A>(head: A): (tail: Array<A>) => NonEmptyArray<A>
export declare function cons<A>(head: A, tail: Array<A>): NonEmptyArray<A>
Details
- Added in 0.1.0
- Deprecated
License
- MIT – Copyright (c) 2017-present Giulio Canti
copy
Signature
export declare const copy: <A>(as: NonEmptyArray<A>) => NonEmptyArray<A>
Details
- Added in 0.1.0
License
- MIT – Copyright (c) 2017-present Giulio Canti
duplicate
Signature
export declare const duplicate: <A>(ma: NonEmptyArray<A>) => NonEmptyArray<NonEmptyArray<A>>
Details
- Added in 0.1.0
License
- MIT – Copyright (c) 2017-present Giulio Canti
extend
Signature
export declare const extend: <A, B>(f: (as: NonEmptyArray<A>) => B) => (as: NonEmptyArray<A>) => NonEmptyArray<B>
Details
- Added in 0.1.0
License
- MIT – Copyright (c) 2017-present Giulio Canti
extract
Signature
export declare const extract: Comonad1<URI>['extract']
Details
- Added in 0.1.0
License
- MIT – Copyright (c) 2017-present Giulio Canti
filter
filter
Use filter
instead.
Signature
export declare function filter<A, B extends A>(
refinement: Refinement<A, B>,
): (as: NonEmptyArray<A>) => Option<NonEmptyArray<B>>
export declare function filter<A>(
predicate: Predicate<A>,
): <B extends A>(bs: NonEmptyArray<B>) => Option<NonEmptyArray<B>>
export declare function filter<A>(predicate: Predicate<A>): (as: NonEmptyArray<A>) => Option<NonEmptyArray<A>>
Details
- Added in 0.1.0
- Deprecated
License
- MIT – Copyright (c) 2017-present Giulio Canti
filterWithIndex
filterWithIndex
Use filterWithIndex
instead.
Signature
export declare const filterWithIndex: <A>(
predicate: (i: number, a: A) => boolean,
) => (as: NonEmptyArray<A>) => Option<NonEmptyArray<A>>
Details
- Added in 0.1.0
- Deprecated
License
- MIT – Copyright (c) 2017-present Giulio Canti
fold
fold
Use concatAll
instead.
Signature
export declare const fold: <A>(S: Semigroup<A>) => (fa: NonEmptyArray<A>) => A
Details
- Added in 0.1.0
- Deprecated
License
- MIT – Copyright (c) 2017-present Giulio Canti
getUnionSemigroup
Signature
export declare const getUnionSemigroup: <A>(E: Eq<A>) => Semigroup<NonEmptyArray<A>>
Details
- Added in 0.1.0
License
- MIT – Copyright (c) 2017-present Giulio Canti
group
Group equal, consecutive elements of an array into non empty arrays.
Signature
export declare function group<B>(E: Eq<B>): {
<A extends B>(as: NonEmptyArray<A>): NonEmptyArray<NonEmptyArray<A>>
<A extends B>(as: Array<A>): Array<NonEmptyArray<A>>
}
Details
- Added in 0.1.0
Example
import { group } from '@fp-tx/core/NonEmptyArray'
import * as N from '@fp-tx/core/number'
assert.deepStrictEqual(group(N.Ord)([1, 2, 1, 1]), [[1], [2], [1, 1]])
License
- MIT – Copyright (c) 2017-present Giulio Canti
groupBy
Splits an array into sub-non-empty-arrays stored in an object, based on the result of calling a string
-returning function on each element, and grouping the results according to values returned
Signature
export declare const groupBy: <A>(f: (a: A) => string) => (as: A[]) => Record<string, NonEmptyArray<A>>
Details
- Added in 0.1.0
Example
import { groupBy } from '@fp-tx/core/NonEmptyArray'
assert.deepStrictEqual(groupBy((s: string) => String(s.length))(['a', 'b', 'ab']), {
'1': ['a', 'b'],
'2': ['ab'],
})
License
- MIT – Copyright (c) 2017-present Giulio Canti
groupSort
groupSort
This is just sort
followed by group
.
Signature
export declare function groupSort<B>(O: Ord<B>): {
<A extends B>(as: NonEmptyArray<A>): NonEmptyArray<NonEmptyArray<A>>
<A extends B>(as: Array<A>): Array<NonEmptyArray<A>>
}
Details
- Added in 0.1.0
- Deprecated
License
- MIT – Copyright (c) 2017-present Giulio Canti
head
Signature
export declare const head: <A>(nea: NonEmptyArray<A>) => A
Details
- Added in 0.1.0
License
- MIT – Copyright (c) 2017-present Giulio Canti
init
Get all but the last element of a non empty array, creating a new array.
Signature
export declare const init: <A>(as: NonEmptyArray<A>) => A[]
Details
- Added in 0.1.0
Example
import { init } from '@fp-tx/core/NonEmptyArray'
assert.deepStrictEqual(init([1, 2, 3]), [1, 2])
assert.deepStrictEqual(init([1]), [])
License
- MIT – Copyright (c) 2017-present Giulio Canti
insertAt
Signature
export declare const insertAt: <A>(i: number, a: A) => (as: A[]) => Option<NonEmptyArray<A>>
Details
- Added in 0.1.0
License
- MIT – Copyright (c) 2017-present Giulio Canti
intercalate
Places an element in between members of a NonEmptyArray
, then folds the results using the provided Semigroup
.
Signature
export declare const intercalate: <A>(S: Semigroup<A>) => (middle: A) => (as: NonEmptyArray<A>) => A
Details
- Added in 0.1.0
Example
import * as S from '@fp-tx/core/string'
import { intercalate } from '@fp-tx/core/NonEmptyArray'
assert.deepStrictEqual(intercalate(S.Semigroup)('-')(['a', 'b', 'c']), 'a-b-c')
License
- MIT – Copyright (c) 2017-present Giulio Canti
intersperse
Places an element in between members of an array
Signature
export declare const intersperse: <A>(middle: A) => (as: NonEmptyArray<A>) => NonEmptyArray<A>
Details
- Added in 0.1.0
Example
import { intersperse } from '@fp-tx/core/NonEmptyArray'
assert.deepStrictEqual(intersperse(9)([1, 2, 3, 4]), [1, 9, 2, 9, 3, 9, 4])
License
- MIT – Copyright (c) 2017-present Giulio Canti
last
Signature
export declare const last: <A>(nea: NonEmptyArray<A>) => A
Details
- Added in 0.1.0
License
- MIT – Copyright (c) 2017-present Giulio Canti
let
Signature
export declare const let_: <N extends string, A, B>(
name: Exclude<N, keyof A>,
f: (a: A) => B,
) => (fa: NonEmptyArray<A>) => NonEmptyArray<{ readonly [K in N | keyof A]: K extends keyof A ? A[K] : B }>
max
Signature
export declare const max: <A>(ord: Ord<A>) => (nea: NonEmptyArray<A>) => A
Details
- Added in 0.1.0
License
- MIT – Copyright (c) 2017-present Giulio Canti
min
Signature
export declare const min: <A>(ord: Ord<A>) => (nea: NonEmptyArray<A>) => A
Details
- Added in 0.1.0
License
- MIT – Copyright (c) 2017-present Giulio Canti
modifyAt
Signature
export declare const modifyAt: <A>(i: number, f: (a: A) => A) => (as: NonEmptyArray<A>) => Option<NonEmptyArray<A>>
Details
- Added in 0.1.0
License
- MIT – Copyright (c) 2017-present Giulio Canti
modifyHead
Apply a function to the head, creating a new NonEmptyArray
.
Signature
export declare const modifyHead: <A>(f: Endomorphism<A>) => (as: NonEmptyArray<A>) => NonEmptyArray<A>
Details
- Added in 0.1.0
License
- MIT – Copyright (c) 2017-present Giulio Canti
modifyLast
Apply a function to the last element, creating a new NonEmptyArray
.
Signature
export declare const modifyLast: <A>(f: Endomorphism<A>) => (as: NonEmptyArray<A>) => NonEmptyArray<A>
Details
- Added in 0.1.0
License
- MIT – Copyright (c) 2017-present Giulio Canti
nonEmptyArray
nonEmptyArray
This instance is deprecated, use small, specific instances instead.
For example if a function needs a Functor
instance, pass NEA.Functor
instead of NEA.nonEmptyArray
(where NEA
is from import NEA from 'fp-ts/NonEmptyArray'
)
Signature
export declare const nonEmptyArray: Monad1<URI> &
Comonad1<URI> &
TraversableWithIndex1<URI, number> &
FunctorWithIndex1<URI, number> &
FoldableWithIndex1<URI, number> &
Alt1<URI>
Details
- Added in 0.1.0
- Deprecated
License
- MIT – Copyright (c) 2017-present Giulio Canti
prependAll
Prepend an element to every member of an array
Signature
export declare const prependAll: <A>(middle: A) => (as: NonEmptyArray<A>) => NonEmptyArray<A>
Details
- Added in 0.1.0
Example
import { prependAll } from '@fp-tx/core/NonEmptyArray'
assert.deepStrictEqual(prependAll(9)([1, 2, 3, 4]), [9, 1, 9, 2, 9, 3, 9, 4])
License
- MIT – Copyright (c) 2017-present Giulio Canti
prependToAll
prependToAll
Use prependAll
instead.
Signature
export declare const prependToAll: <A>(middle: A) => (as: NonEmptyArray<A>) => NonEmptyArray<A>
Details
- Added in 0.1.0
- Deprecated
License
- MIT – Copyright (c) 2017-present Giulio Canti
reverse
Signature
export declare const reverse: <A>(as: NonEmptyArray<A>) => NonEmptyArray<A>
Details
- Added in 0.1.0
License
- MIT – Copyright (c) 2017-present Giulio Canti
rotate
Rotate a NonEmptyArray
by n
steps.
Signature
export declare const rotate: (n: number) => <A>(as: NonEmptyArray<A>) => NonEmptyArray<A>
Details
- Added in 0.1.0
Example
import { rotate } from '@fp-tx/core/NonEmptyArray'
assert.deepStrictEqual(rotate(2)([1, 2, 3, 4, 5]), [4, 5, 1, 2, 3])
assert.deepStrictEqual(rotate(-2)([1, 2, 3, 4, 5]), [3, 4, 5, 1, 2])
License
- MIT – Copyright (c) 2017-present Giulio Canti
snoc
snoc
Use append
instead.
Signature
export declare const snoc: <A>(init: A[], end: A) => NonEmptyArray<A>
Details
- Added in 0.1.0
- Deprecated
License
- MIT – Copyright (c) 2017-present Giulio Canti
sort
Signature
export declare const sort: <B>(O: Ord<B>) => <A extends B>(as: NonEmptyArray<A>) => NonEmptyArray<A>
Details
- Added in 0.1.0
License
- MIT – Copyright (c) 2017-present Giulio Canti
sortBy
Sort the elements of a NonEmptyArray
in increasing order, where elements are compared using first ords[0]
, then ords[1]
, etc...
Signature
export declare const sortBy: <B>(ords: Ord<B>[]) => <A extends B>(as: NonEmptyArray<A>) => NonEmptyArray<A>
Details
- Added in 0.1.0
Example
import * as NEA from '@fp-tx/core/NonEmptyArray'
import { contramap } from '@fp-tx/core/Ord'
import * as S from '@fp-tx/core/string'
import * as N from '@fp-tx/core/number'
import { pipe } from '@fp-tx/core/function'
interface Person {
name: string
age: number
}
const byName = pipe(
S.Ord,
contramap((p: Person) => p.name),
)
const byAge = pipe(
N.Ord,
contramap((p: Person) => p.age),
)
const sortByNameByAge = NEA.sortBy([byName, byAge])
const persons: NEA.NonEmptyArray<Person> = [
{ name: 'a', age: 1 },
{ name: 'b', age: 3 },
{ name: 'c', age: 2 },
{ name: 'b', age: 2 },
]
assert.deepStrictEqual(sortByNameByAge(persons), [
{ name: 'a', age: 1 },
{ name: 'b', age: 2 },
{ name: 'b', age: 3 },
{ name: 'c', age: 2 },
])
License
- MIT – Copyright (c) 2017-present Giulio Canti
splitAt
Splits a NonEmptyArray
into two pieces, the first piece has max n
elements.
Signature
export declare const splitAt: (n: number) => <A>(as: NonEmptyArray<A>) => [NonEmptyArray<A>, A[]]
Details
- Added in 0.1.0
License
- MIT – Copyright (c) 2017-present Giulio Canti
tail
Signature
export declare const tail: <A>(as: NonEmptyArray<A>) => A[]
Details
- Added in 0.1.0
License
- MIT – Copyright (c) 2017-present Giulio Canti
unappend
Return the tuple of the init
and the last
.
Signature
export declare const unappend: <A>(as: NonEmptyArray<A>) => [A[], A]
Details
- Added in 0.1.0
Example
import { unappend } from '@fp-tx/core/NonEmptyArray'
assert.deepStrictEqual(unappend([1, 2, 3, 4]), [[1, 2, 3], 4])
License
- MIT – Copyright (c) 2017-present Giulio Canti
uncons
uncons
Use unprepend
instead.
Signature
export declare const uncons: <A>(as: NonEmptyArray<A>) => [A, Array<A>]
Details
- Added in 0.1.0
- Deprecated
License
- MIT – Copyright (c) 2017-present Giulio Canti
union
Signature
export declare const union: <A>(E: Eq<A>) => (second: NonEmptyArray<A>) => (first: NonEmptyArray<A>) => NonEmptyArray<A>
Details
- Added in 0.1.0
License
- MIT – Copyright (c) 2017-present Giulio Canti
uniq
Remove duplicates from a NonEmptyArray
, keeping the first occurrence of an element.
Signature
export declare const uniq: <A>(E: Eq<A>) => (as: NonEmptyArray<A>) => NonEmptyArray<A>
Details
- Added in 0.1.0
Example
import { uniq } from '@fp-tx/core/NonEmptyArray'
import * as N from '@fp-tx/core/number'
assert.deepStrictEqual(uniq(N.Eq)([1, 2, 1]), [1, 2])
License
- MIT – Copyright (c) 2017-present Giulio Canti
unprepend
Return the tuple of the head
and the tail
.
Signature
export declare const unprepend: <A>(as: NonEmptyArray<A>) => [A, A[]]
Details
- Added in 0.1.0
Example
import { unprepend } from '@fp-tx/core/NonEmptyArray'
assert.deepStrictEqual(unprepend([1, 2, 3]), [1, [2, 3]])
License
- MIT – Copyright (c) 2017-present Giulio Canti
unsnoc
unsnoc
Use unappend
instead.
Signature
export declare const unsnoc: <A>(as: NonEmptyArray<A>) => [Array<A>, A]
Details
- Added in 0.1.0
- Deprecated
License
- MIT – Copyright (c) 2017-present Giulio Canti
unzip
Signature
export declare const unzip: <A, B>(abs: NonEmptyArray<[A, B]>) => [NonEmptyArray<A>, NonEmptyArray<B>]
Details
- Added in 0.1.0
License
- MIT – Copyright (c) 2017-present Giulio Canti
updateAt
Signature
export declare const updateAt: <A>(i: number, a: A) => (as: NonEmptyArray<A>) => Option<NonEmptyArray<A>>
Details
- Added in 0.1.0
License
- MIT – Copyright (c) 2017-present Giulio Canti
updateHead
Change the head, creating a new NonEmptyArray
.
Signature
export declare const updateHead: <A>(a: A) => (as: NonEmptyArray<A>) => NonEmptyArray<A>
Details
- Added in 0.1.0
License
- MIT – Copyright (c) 2017-present Giulio Canti
updateLast
Change the last element, creating a new NonEmptyArray
.
Signature
export declare const updateLast: <A>(a: A) => (as: NonEmptyArray<A>) => NonEmptyArray<A>
Details
- Added in 0.1.0
License
- MIT – Copyright (c) 2017-present Giulio Canti
zip
Signature
export declare function zip<B>(bs: NonEmptyArray<B>): <A>(as: NonEmptyArray<A>) => NonEmptyArray<[A, B]>
export declare function zip<A, B>(as: NonEmptyArray<A>, bs: NonEmptyArray<B>): NonEmptyArray<[A, B]>
Details
- Added in 0.1.0
License
- MIT – Copyright (c) 2017-present Giulio Canti
zipWith
Signature
export declare const zipWith: <A, B, C>(
as: NonEmptyArray<A>,
bs: NonEmptyArray<B>,
f: (a: A, b: B) => C,
) => NonEmptyArray<C>
Details
- Added in 0.1.0
License
- MIT – Copyright (c) 2017-present Giulio Canti