Skip to content

Commit f1d6e34

Browse files
committed
test: support OCaml < 4.12
1 parent 5f31026 commit f1d6e34

1 file changed

Lines changed: 20 additions & 3 deletions

File tree

test/ListAsBwd.ml

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,26 @@ let append xs ys = xs @ ys
1717

1818
let prepend xs ys = xs @ ys
1919

20-
let equal ~eq xs ys = L.equal ~eq (L.rev xs) (L.rev ys)
21-
22-
let compare ~cmp xs ys = L.compare ~cmp (L.rev xs) (L.rev ys)
20+
let equal ~eq xs ys =
21+
let rec go =
22+
function
23+
| [], [] -> true
24+
| x::xs, y::ys -> eq x y && go (xs, ys)
25+
| _ -> false
26+
in
27+
go (List.rev xs, List.rev ys)
28+
29+
let compare ~cmp xs ys =
30+
let rec go =
31+
function
32+
| [], [] -> 0
33+
| _::_, [] -> 1
34+
| [], _::_ -> -1
35+
| x::xs, y::ys ->
36+
let c = cmp x y in
37+
if c <> 0 then c else go (xs, ys)
38+
in
39+
go (List.rev xs, List.rev ys)
2340

2441
let iter ~f xs = L.iter ~f (L.rev xs)
2542

0 commit comments

Comments
 (0)