Advertisement
Guest User

Untitled

a guest
Sep 30th, 2016
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.80 KB | None | 0 0
  1. //=> The `list` of filtered elements depending on `predicate`
  2. const filter = <Any>(list: Any[], predicate: ((elem: any) => boolean)) : Any[] =>
  3. list.filter (predicate)
  4.  
  5.  
  6. //=> The `list` of elements less than `value`
  7. const filterLessThan = (list: number[], value: number) : number[] =>
  8. filter (list, (elem) => elem < value)
  9.  
  10.  
  11. //=> The `list` of elements greater or equal than `value`
  12. const filterGreaterOrEqual = (list: number[], value: number) : number[] =>
  13. filter (list, (elem) => elem >= value)
  14.  
  15.  
  16. //=> The sorted `list` thanks to the `quicksort` algorithm
  17. const quicksort = ([head: number, ...tail: number[]]) : number[] => head === undefined ? [] :
  18. ( filterLessThan (tail, head), filterGreaterOrEqual (tail, head) )
  19. | (elemsLess, elemsGreater) => [...quicksort (elemsLess), head, ...quicksort (elemsGreater)]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement