Stack utilities
This commit is contained in:
parent
e17fd13442
commit
c9da4fcf26
|
@ -41,3 +41,21 @@ export function dropNonEmpty<T>(s: NonEmptyStack<T>, n: number): NonEmptyStack<T
|
|||
}
|
||||
return s;
|
||||
}
|
||||
|
||||
export function depth<T>(s: Stack<T>): number {
|
||||
let count = 0;
|
||||
while (s !== null) {
|
||||
count++;
|
||||
s = s.rest;
|
||||
}
|
||||
return count;
|
||||
}
|
||||
|
||||
export function toArray<T>(s: Stack<T>): T[] {
|
||||
const result = [];
|
||||
while (s !== null) {
|
||||
result.push(s.item);
|
||||
s = s.rest;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue