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;
|
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