pragmatic-fp-ts
Version:
Opinionated functional programming library with easy use in mind
19 lines (13 loc) • 502 B
text/typescript
import { Predicate } from "./main.ts";
export function takeRightWhile<A>(pred: Predicate<A>, coll: A[]): A[];
export function takeRightWhile<A>(pred: Predicate<A>): (coll: A[]) => A[];
export function takeRightWhile<A>(pred: Predicate<A>, coll?: A[]) {
if (arguments.length === 1)
return (coll_: A[]) => takeRightWhile(pred, coll_);
const result: A[] = [];
const cc = coll || [];
for (let i = cc.length - 1; i >= 0 && pred(cc[i]); --i) {
result.push(cc[i]);
}
return result;
}