mirror of
https://github.com/c-cube/ocaml-containers.git
synced 2026-01-28 03:44:51 -05:00
bugfix in CCFQueue.add_seq_front
This commit is contained in:
parent
c1313e094d
commit
4b409ca34f
1 changed files with 10 additions and 7 deletions
|
|
@ -290,9 +290,15 @@ let tail q =
|
||||||
*)
|
*)
|
||||||
|
|
||||||
let add_seq_front seq q =
|
let add_seq_front seq q =
|
||||||
let q = ref q in
|
let l = ref [] in
|
||||||
seq (fun x -> q := cons x !q);
|
(* reversed seq *)
|
||||||
!q
|
seq (fun x -> l := x :: !l);
|
||||||
|
List.fold_left (fun q x -> cons x q) q !l
|
||||||
|
|
||||||
|
(*$Q
|
||||||
|
Q.(pair (list int) (list int)) (fun (l1, l2) -> \
|
||||||
|
add_seq_front (Sequence.of_list l1) (of_list l2) |> to_list = l1 @ l2)
|
||||||
|
*)
|
||||||
|
|
||||||
let add_seq_back q seq =
|
let add_seq_back q seq =
|
||||||
let q = ref q in
|
let q = ref q in
|
||||||
|
|
@ -377,10 +383,7 @@ let to_list q =
|
||||||
to_seq q (fun x -> l := x :: !l);
|
to_seq q (fun x -> l := x :: !l);
|
||||||
List.rev !l
|
List.rev !l
|
||||||
|
|
||||||
let of_seq seq =
|
let of_seq seq = add_seq_front seq empty
|
||||||
let l = ref [] in
|
|
||||||
seq (fun x -> l := x :: !l);
|
|
||||||
List.fold_left (fun q x -> cons x q) empty !l
|
|
||||||
|
|
||||||
(*$Q
|
(*$Q
|
||||||
(Q.list Q.int) (fun l -> \
|
(Q.list Q.int) (fun l -> \
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue