Skip to content

Commit

Permalink
🐛 chore: rearrange code
Browse files Browse the repository at this point in the history
  • Loading branch information
wolfram77 committed May 7, 2023
1 parent 97abbea commit 08dab35
Show file tree
Hide file tree
Showing 4 changed files with 56 additions and 50 deletions.
4 changes: 2 additions & 2 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "extra-array",
"version": "4.0.2",
"version": "4.0.3",
"description": "An array is a collection of values, stored contiguously.",
"main": "index.js",
"module": "index.mjs",
Expand Down
98 changes: 52 additions & 46 deletions src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -130,28 +130,6 @@ function toSet<T, U=T>(x: T[], fm: MapFunction<T, U> | null=null): Set<T|U> {
// #region GENERATE
// ----------------

/**
* Convert an iterable to array.
* @param x an iterable
* @returns x as array
*/
export function fromIterable<T>(x: Iterable<T>): T[] {
return [...x];
}
export {fromIterable as from};


/**
* Convert an iterable to array!
* @param x an iterable (updatable if array!)
* @returns x as array
*/
export function fromIterable$<T>(x: Iterable<T>): T[] {
return Array.isArray(x)? x : [...x];
}
export {fromIterable$ as from$};


/**
* Generate array from given number range.
* @param v start number
Expand Down Expand Up @@ -197,6 +175,28 @@ export function fromApplication<T>(fm: MapFunction<T, T>, v: T, n: number): T[]
return a;
}
export {fromApplication as fromApply};


/**
* Convert an iterable to array.
* @param x an iterable
* @returns x as array
*/
export function fromIterable<T>(x: Iterable<T>): T[] {
return [...x];
}
export {fromIterable as from};


/**
* Convert an iterable to array!
* @param x an iterable (updatable if array!)
* @returns x as array
*/
export function fromIterable$<T>(x: Iterable<T>): T[] {
return Array.isArray(x)? x : [...x];
}
export {fromIterable$ as from$};
// #endregion


Expand Down Expand Up @@ -242,18 +242,6 @@ export function is(v: any): v is any[] {
}


/**
* Examine if array is sorted.
* @param x an array
* @param fc compare function (a, b)
* @param fm map function (v, i, x)
* @returns x is sorted?
*/
export function isSorted<T, U=T>(x: T[], fc: CompareFunction<T|U> | null=null, fm: MapFunction<T, T|U> | null=null): boolean {
return searchUnsortedValue(x, fc, fm) === -1;
}


/**
* Obtain all indices.
* @param x an array
Expand Down Expand Up @@ -317,8 +305,8 @@ export function ientries<T>(x: T[]): IEntries<T> {



// #region LENGTH
// --------------
// #region INDEX
// -------------

/**
* Get zero-based index for an element in array.
Expand All @@ -345,6 +333,22 @@ export function indexRange<T>(x: T[], i: number=0, I: number=x.length): [number,
var I = I>=0? Math.min(I, X) : Math.max(X+I, 0);
return [i, Math.max(i, I)];
}
// #endregion




// #region LENGTH
// --------------

/**
* Check if an array is empty.
* @param x an array
* @returns |x| = 0?
*/
export function isEmpty<T>(x: T[]): boolean {
return x.length===0;
}


/**
Expand All @@ -361,16 +365,6 @@ export function length<T>(x: T[], i: number=0, I: number=x.length): number {
export {length as size};


/**
* Check if an array is empty.
* @param x an array
* @returns |x| = 0?
*/
export function isEmpty<T>(x: T[]): boolean {
return x.length===0;
}


/**
* Resize an array to given length!
* @param x an array
Expand Down Expand Up @@ -3192,6 +3186,18 @@ export function cartesianProduct<T, U=T>(xs: T[][], fm: MapFunction<T[], T[]|U>
// #region SORT
// ------------

/**
* Examine if array is sorted.
* @param x an array
* @param fc compare function (a, b)
* @param fm map function (v, i, x)
* @returns x is sorted?
*/
export function isSorted<T, U=T>(x: T[], fc: CompareFunction<T|U> | null=null, fm: MapFunction<T, T|U> | null=null): boolean {
return searchUnsortedValue(x, fc, fm) === -1;
}


/**
* Arrange values in order.
* @param x an array
Expand Down
2 changes: 1 addition & 1 deletion wiki
Submodule wiki updated from 4de4f8 to 0310f9

0 comments on commit 08dab35

Please sign in to comment.