mirror of
https://github.com/c-cube/ocaml-containers.git
synced 2025-12-06 11:15:31 -05:00
add CCArray.of_iter
This commit is contained in:
parent
31ad563044
commit
18ffdd707b
4 changed files with 19 additions and 0 deletions
|
|
@ -466,6 +466,12 @@ let to_seq a =
|
||||||
|
|
||||||
let to_iter a k = iter k a
|
let to_iter a k = iter k a
|
||||||
|
|
||||||
|
let of_iter (i : 'a iter) : 'a array =
|
||||||
|
let open CCVector in
|
||||||
|
let vec = create () in
|
||||||
|
i (push vec);
|
||||||
|
to_array vec
|
||||||
|
|
||||||
let to_gen a =
|
let to_gen a =
|
||||||
let k = ref 0 in
|
let k = ref 0 in
|
||||||
fun () ->
|
fun () ->
|
||||||
|
|
|
||||||
|
|
@ -240,6 +240,11 @@ val to_iter : 'a t -> 'a iter
|
||||||
in modification of the iterator.
|
in modification of the iterator.
|
||||||
@since 2.8 *)
|
@since 2.8 *)
|
||||||
|
|
||||||
|
val of_iter : 'a iter -> 'a t
|
||||||
|
(** [of_iter iter] builds a array from a given [iter].
|
||||||
|
In the result, elements appear in the same order as they did in the source [iter].
|
||||||
|
@since 3.15 *)
|
||||||
|
|
||||||
val to_seq : 'a t -> 'a Seq.t
|
val to_seq : 'a t -> 'a Seq.t
|
||||||
(** [to_seq a] returns a [Seq.t] of the elements of an array [a].
|
(** [to_seq a] returns a [Seq.t] of the elements of an array [a].
|
||||||
The input array [a] is shared with the sequence and modification of it will result
|
The input array [a] is shared with the sequence and modification of it will result
|
||||||
|
|
|
||||||
|
|
@ -248,6 +248,11 @@ val to_iter : 'a t -> 'a iter
|
||||||
in modification of the iterator.
|
in modification of the iterator.
|
||||||
@since 2.8 *)
|
@since 2.8 *)
|
||||||
|
|
||||||
|
val of_iter : 'a iter -> 'a t
|
||||||
|
(** [of_iter iter] builds a array from a given [iter].
|
||||||
|
In the result, elements appear in the same order as they did in the source [iter].
|
||||||
|
@since 3.15 *)
|
||||||
|
|
||||||
val to_seq : 'a t -> 'a Seq.t
|
val to_seq : 'a t -> 'a Seq.t
|
||||||
(** [to_seq a] returns a [Seq.t] of the elements of an array [a].
|
(** [to_seq a] returns a [Seq.t] of the elements of an array [a].
|
||||||
The input array [a] is shared with the sequence and modification of it will result
|
The input array [a] is shared with the sequence and modification of it will result
|
||||||
|
|
|
||||||
|
|
@ -309,3 +309,6 @@ q ~count:300 arr_arbitrary (fun a ->
|
||||||
Array.sort CCInt.compare a1;
|
Array.sort CCInt.compare a1;
|
||||||
sort_generic (module IA) ~cmp:CCInt.compare a2;
|
sort_generic (module IA) ~cmp:CCInt.compare a2;
|
||||||
a1 = a2)
|
a1 = a2)
|
||||||
|
;;
|
||||||
|
|
||||||
|
q Q.(array int) (fun a -> of_iter (to_iter a) = a)
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue