add CCVector.to_seq_rev

This commit is contained in:
Simon Cruanes 2015-10-08 12:01:18 +02:00
parent 05fc100be2
commit 6e99f1c8e8
2 changed files with 15 additions and 0 deletions

View file

@ -531,6 +531,16 @@ let of_seq ?(init=create ()) seq =
let to_seq v k = iter k v let to_seq v k = iter k v
let to_seq_rev v k =
for i = v.size - 1 downto 0 do
k (Array.unsafe_get v.vec i)
done
(*$Q
Q.(list int) (fun l -> \
let v= of_list l in v |> to_seq_rev |> Sequence.to_rev_list = l)
*)
let slice_seq v start len = let slice_seq v start len =
assert (start >= 0 && len >= 0); assert (start >= 0 && len >= 0);
fun k -> fun k ->

View file

@ -225,6 +225,11 @@ val of_seq : ?init:('a,rw) t -> 'a sequence -> ('a, rw) t
val to_seq : ('a,_) t -> 'a sequence val to_seq : ('a,_) t -> 'a sequence
val to_seq_rev : ('a, _) t -> 'a sequence
(** [to_seq_rev v] returns the sequence of elements of [v] in reverse order,
that is, the last elements of [v] are iterated on first.
@since NEXT_RELEASE *)
val slice : ('a,rw) t -> ('a array * int * int) val slice : ('a,rw) t -> ('a array * int * int)
(** Vector as an array slice. By doing it we expose the internal array, so (** Vector as an array slice. By doing it we expose the internal array, so
be careful! *) be careful! *)