mirror of
https://github.com/c-cube/sidekick.git
synced 2026-01-23 18:06:41 -05:00
improve IArray
This commit is contained in:
parent
57591ba042
commit
582f1aad18
2 changed files with 22 additions and 0 deletions
|
|
@ -73,6 +73,20 @@ let of_list = Array.of_list
|
|||
|
||||
let to_list = Array.to_list
|
||||
|
||||
let of_list_map f l =
|
||||
match l with
|
||||
| [] -> empty
|
||||
| x :: _ ->
|
||||
let arr = make (List.length l) (f x) in
|
||||
List.iteri (fun i x -> Array.unsafe_set arr i (f x)) l;
|
||||
arr
|
||||
|
||||
let to_list_map f a =
|
||||
CCArray.fold_right (fun x acc -> f x :: acc) a []
|
||||
|
||||
let of_array_map = Array.map
|
||||
let to_array_map = Array.map
|
||||
|
||||
let of_array_unsafe a = a (* careful with that axe, Eugene *)
|
||||
|
||||
let to_seq a k = iter k a
|
||||
|
|
|
|||
|
|
@ -60,6 +60,14 @@ val of_list : 'a list -> 'a t
|
|||
|
||||
val to_list : 'a t -> 'a list
|
||||
|
||||
val of_list_map : ('a -> 'b) -> 'a list -> 'b t
|
||||
|
||||
val to_list_map : ('a -> 'b) -> 'a t -> 'b list
|
||||
|
||||
val of_array_map : ('a -> 'b) -> 'a array -> 'b t
|
||||
|
||||
val to_array_map : ('a -> 'b) -> 'a t -> 'b array
|
||||
|
||||
val of_array_unsafe : 'a array -> 'a t
|
||||
(** Take ownership of the given array. Careful, the array must {b NOT}
|
||||
be modified afterwards! *)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue