mirror of
https://github.com/c-cube/ocaml-containers.git
synced 2025-12-09 20:55:31 -05:00
add CCVector.rev_iter
This commit is contained in:
parent
da188ec911
commit
526cda8ecb
2 changed files with 19 additions and 0 deletions
|
|
@ -586,6 +586,21 @@ let rev v =
|
|||
rev (create ()) |> to_list = []
|
||||
*)
|
||||
|
||||
let rev_iter f v =
|
||||
for i = v.size-1 downto 0 do
|
||||
f v.vec.(i)
|
||||
done
|
||||
|
||||
(*$T
|
||||
let v = of_list [1;2;3] in (fun f->rev_iter f v) |> Sequence.to_list = [3;2;1]
|
||||
*)
|
||||
|
||||
(*$Q
|
||||
Q.(list int) (fun l -> \
|
||||
let v = of_list l in \
|
||||
(fun f->rev_iter f v) |> Sequence.to_list = List.rev l)
|
||||
*)
|
||||
|
||||
let size v = v.size
|
||||
|
||||
let length v = v.size
|
||||
|
|
|
|||
|
|
@ -228,6 +228,10 @@ val rev : ('a,_) t -> ('a, 'mut) t
|
|||
val rev' : ('a, rw) t -> unit
|
||||
(** Reverse the vector in place *)
|
||||
|
||||
val rev_iter : ('a -> unit) -> ('a,_) t -> unit
|
||||
(** [rev_iter f a] is the same as [iter f (rev a)], only more efficient.
|
||||
@since NEXT_RELEASE *)
|
||||
|
||||
val size : ('a,_) t -> int
|
||||
(** number of elements in vector *)
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue