index overview
Added in v0.1.0
Table of contents
Apply
ap
Signature
export declare const ap: <N, T1>(vec: Vec<N, T1>) => <T2>(fs: Vec<N, (x: T1) => T2>) => Vec<N, T2>
Added in v0.1.0
Contructors
append
Append a value to the end of a vector
Signature
export declare const append: <T>(
x: T
) => <N extends number>(
xs: Vec<N, T>
) => Vec<If<Not<IsNumLiteral<N>> extends true ? true : false, number, [...TupleOf<N, any, []>, any]['length']>, T>
Added in v0.1.0
concat
Concatenates two vectors of sizes N and M resulting in a vector of size N+M
Signature
export declare const concat: <T, N extends number>(
v1: Vec<N, T>
) => <M extends number>(
v2: Vec<M, T>
) => Vec<
If<
Not<IsNumLiteral<N>> extends true ? true : Not<IsNumLiteral<M>> extends true ? true : false,
number,
[...TupleOf<N, any, []>, ...TupleOf<M, any, []>]['length']
>,
T
>
Added in v0.1.0
empty
Create an empty vector
Signature
export declare const empty: <T>() => Vec<0, T>
Added in v0.1.0
prepend
Prepend a value to the front of a vector
Signature
export declare const prepend: <T>(
x: T
) => <N extends number>(
xs: Vec<N, T>
) => Vec<If<Not<IsNumLiteral<N>> extends true ? true : false, number, [...TupleOf<N, any, []>, any]['length']>, T>
Added in v0.1.0
vec
Create a vector of n dimensions
Signature
export declare const vec: {
<T>(c1: T, c2: T, c3: T, c4: T, c5: T): Vec<5, T>
<T>(c1: T, c2: T, c3: T, c4: T): Vec<4, T>
<T>(c1: T, c2: T, c3: T): Vec<3, T>
<T>(c1: T, c2: T): Vec<2, T>
<T>(c1: T): Vec<1, T>
<T>(): Vec<0, T>
}
Added in v0.1.0
Functor
map
Maps over a Vec’s inner type
Signature
export declare const map: <T1, T2>(f: (x: T1) => T2) => <N>(vec: Vec<N, T1>) => Vec<N, T2>
Added in v0.1.0
Instances
Apply
Signature
export declare const Apply: Apply2<'Vec'>
Added in v0.1.0
Functor
Signature
export declare const Functor: Functor2<'Vec'>
Added in v0.1.0
URI
Signature
export declare const URI: 'Vec'
Added in v0.1.0
URI (type alias)
Signature
export type URI = typeof URI
Added in v0.1.0
getPointed
Signature
export declare const getPointed: <N extends number>(n: N) => P.Pointed<URI>
Added in v0.1.0
Model
Vec (type alias)
Vector type of length N
with fields of type A
Signature
export type Vec<N, A> = ReadonlyArray<A> & { _N: N; _A: A; _URI: URI }
Added in v0.1.0
Pointed
of
Signature
export declare const of: <N extends number>(n: N) => <T>(x: T) => Vec<N, T>
Added in v0.1.0
Semiring
add
Signature
export declare const add: <T>(St: Semiring<T>) => <N>(vec1: Vec<N, T>) => (vec2: Vec<N, T>) => Vec<N, T>
Added in v0.1.0
getSemiring
Signature
export declare const getSemiring: <N extends number>(n: N) => <T>(St: Semiring<T>) => Semiring<Vec<N, T>>
Added in v0.1.0
mul
Signature
export declare const mul: <T>(St: Semiring<T>) => <N>(vec1: Vec<N, T>) => (vec2: Vec<N, T>) => Vec<N, T>
Added in v0.1.0
one
Signature
export declare const one: <N extends number>(n: N) => <T>(St: Semiring<T>) => Vec<N, T>
Added in v0.1.0
zero
Signature
export declare const zero: <N extends number>(n: N) => <T>(St: Semiring<T>) => Vec<N, T>
Added in v0.1.0
Utils
lookup
Get the element at a given index inside a vector. Index out of bounds errors are caught at compile time.
Signature
export declare const lookup: <I extends number>(
i: I
) => <N extends number, T>(
vec: Vec<N, T>
) => If<
IsNumLiteral<I> extends true
? IsNumLiteral<N> extends true
? LT<I, N> extends true
? true
: false
: false
: false,
T,
unknown
>
Added in v0.1.0