Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //=> The `list` of filtered elements depending on `predicate`
- const filter = <Any>(list: Any[], predicate: ((elem: any) => boolean)) : Any[] =>
- list.filter (predicate)
- //=> The `list` of elements less than `value`
- const filterLessThan = (list: number[], value: number) : number[] =>
- filter (list, (elem) => elem < value)
- //=> The `list` of elements greater or equal than `value`
- const filterGreaterOrEqual = (list: number[], value: number) : number[] =>
- filter (list, (elem) => elem >= value)
- //=> The sorted `list` thanks to the `quicksort` algorithm
- const quicksort = ([head: number, ...tail: number[]]) : number[] => head === undefined ? [] :
- ( filterLessThan (tail, head), filterGreaterOrEqual (tail, head) )
- | (elemsLess, elemsGreater) => [...quicksort (elemsLess), head, ...quicksort (elemsGreater)]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement