package tablecloth-native

  1. Overview
  2. Docs

Module Tablecloth.ListSource

Sourcetype 'a t = 'a list
Sourceval concat : 'a list list -> 'a list
Sourceval sum : int list -> int
Sourceval floatSum : float list -> float
Sourceval float_sum : float list -> float
Sourceval map : f:('a -> 'b) -> 'a list -> 'b list
Sourceval sliding : ?step:int -> 'a t -> size:int -> 'a t t

Provides a sliding 'window' of sub-lists over a list.

The first sub-list starts at the head of the list and takes the first size elements.

The sub-list then advances step (which defaults to 1) positions before taking the next size elements.

The sub-lists are guaranteed to always be of length size and iteration stops once a sub-list would extend beyond the end of the list.

List.sliding [1;2;3;4;5] ~size:1 = [[1]; [2]; [3]; [4]; [5]] 
List.sliding [1;2;3;4;5] ~size:2 = [[1;2]; [2;3]; [3;4]; [4;5]] 
List.sliding [1;2;3;4;5] ~size:3 = [[1;2;3]; [2;3;4]; [3;4;5]] 
List.sliding [1;2;3;4;5] ~size:2 ~step:2 = [[1;2]; [3;4]] 
List.sliding [1;2;3;4;5] ~size:1 ~step:3 = [[1]; [4]] 
List.sliding [1;2;3;4;5] ~size:2 ~step:3 = [[1; 2]; [4; 5]]
List.sliding [1;2;3;4;5] ~size:7 = []
Sourceval indexedMap : f:(int -> 'a -> 'b) -> 'a list -> 'b list
Sourceval indexed_map : f:(int -> 'a -> 'b) -> 'a list -> 'b list
Sourceval mapi : f:(int -> 'a -> 'b) -> 'a list -> 'b list
Sourceval map2 : f:('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
Sourceval getBy : f:('a -> bool) -> 'a list -> 'a option
Sourceval get_by : f:('a -> bool) -> 'a list -> 'a option
Sourceval find : f:('a -> bool) -> 'a list -> 'a option
Sourceval elemIndex : value:'a -> 'a list -> int option
Sourceval elem_index : value:'a -> 'a list -> int option
Sourceval last : 'a list -> 'a option
Sourceval member : value:'a -> 'a list -> bool
Sourceval uniqueBy : f:('a -> string) -> 'a list -> 'a list
Sourceval unique_by : f:('a -> string) -> 'a list -> 'a list
Sourceval getAt : index:int -> 'a list -> 'a option
Sourceval get_at : index:int -> 'a list -> 'a option
Sourceval any : f:('a -> bool) -> 'a list -> bool
Sourceval head : 'a list -> 'a option
Sourceval drop : count:int -> 'a list -> 'a list
Sourceval init : 'a list -> 'a list option
Sourceval filterMap : f:('a -> 'b option) -> 'a list -> 'b list
Sourceval filter_map : f:('a -> 'b option) -> 'a list -> 'b list
Sourceval filter : f:('a -> bool) -> 'a list -> 'a list
Sourceval partition : f:('a -> bool) -> 'a list -> 'a list * 'a list
Sourceval foldRight : f:('a -> 'b -> 'b) -> initial:'b -> 'a list -> 'b
Sourceval fold_right : f:('a -> 'b -> 'b) -> initial:'b -> 'a list -> 'b
Sourceval foldLeft : f:('a -> 'b -> 'b) -> initial:'b -> 'a list -> 'b
Sourceval fold_left : f:('a -> 'b -> 'b) -> initial:'b -> 'a list -> 'b
Sourceval findIndex : f:('a -> bool) -> 'a list -> int option
Sourceval find_index : f:('a -> bool) -> 'a list -> int option
Sourceval take : count:int -> 'a list -> 'a list
Sourceval updateAt : index:int -> f:('a -> 'a) -> 'a list -> 'a list
Sourceval update_at : index:int -> f:('a -> 'a) -> 'a list -> 'a list
Sourceval length : 'a list -> int
Sourceval reverse : 'a list -> 'a list
Sourceval dropWhile : f:('a -> bool) -> 'a list -> 'a list
Sourceval drop_while : f:('a -> bool) -> 'a list -> 'a list
Sourceval isEmpty : 'a list -> bool
Sourceval is_empty : 'a list -> bool
Sourceval cons : 'a -> 'a list -> 'a list
Sourceval takeWhile : f:('a -> bool) -> 'a list -> 'a list
Sourceval take_while : f:('a -> bool) -> 'a list -> 'a list
Sourceval all : f:('a -> bool) -> 'a list -> bool
Sourceval tail : 'a list -> 'a list option
Sourceval append : 'a list -> 'a list -> 'a list
Sourceval removeAt : index:int -> 'a list -> 'a list
Sourceval remove_at : index:int -> 'a list -> 'a list
Sourceval minimumBy : f:('a -> 'comparable) -> 'a list -> 'a option
Sourceval minimum_by : f:('a -> 'comparable) -> 'a list -> 'a option
Sourceval minimum : 'comparable list -> 'comparable option
Sourceval maximumBy : f:('a -> 'comparable) -> 'a list -> 'a option
Sourceval maximum_by : f:('a -> 'comparable) -> 'a list -> 'a option
Sourceval maximum : 'comparable list -> 'comparable option
Sourceval sortBy : f:('a -> 'b) -> 'a list -> 'a list
Sourceval sort_by : f:('a -> 'b) -> 'a list -> 'a list
Sourceval span : f:('a -> bool) -> 'a list -> 'a list * 'a list
Sourceval groupWhile : f:('a -> 'a -> bool) -> 'a list -> 'a list list
Sourceval group_while : f:('a -> 'a -> bool) -> 'a list -> 'a list list
Sourceval splitAt : index:int -> 'a list -> 'a list * 'a list
Sourceval split_at : index:int -> 'a list -> 'a list * 'a list
Sourceval insertAt : index:int -> value:'a -> 'a list -> 'a list
Sourceval insert_at : index:int -> value:'a -> 'a list -> 'a list
Sourceval splitWhen : f:('a -> bool) -> 'a list -> 'a list * 'a list
Sourceval split_when : f:('a -> bool) -> 'a list -> 'a list * 'a list
Sourceval intersperse : 'a -> 'a list -> 'a list
Sourceval initialize : int -> (int -> 'a) -> 'a list
Sourceval sortWith : ('a -> 'a -> int) -> 'a list -> 'a list
Sourceval sort_with : ('a -> 'a -> int) -> 'a list -> 'a list
Sourceval iter : f:('a -> unit) -> 'a list -> unit
Sourceval repeat : count:int -> 'a -> 'a list

List.repeat ~count=n v returns a list with the value v repeated n times.

List.repeat ~count:3 99 = [99; 99; 99]
List.repeat ~count:0 99 = []