mirror of
https://github.com/c-cube/ocaml-containers.git
synced 2025-12-07 11:45:31 -05:00
fix for 4.08
This commit is contained in:
parent
fcee2f9c41
commit
50b478366f
1 changed files with 6 additions and 20 deletions
|
|
@ -342,25 +342,11 @@ let rec flat_map_kont f l kont =
|
||||||
|
|
||||||
[@@@iflt 5.1]
|
[@@@iflt 5.1]
|
||||||
|
|
||||||
let[@inline] flat_map f l = match l with
|
let[@inline] flat_map f l =
|
||||||
|
match l with
|
||||||
| [] -> []
|
| [] -> []
|
||||||
| [ x ] -> f x
|
| [ x ] -> f x
|
||||||
| x :: tl
|
| x :: tl -> flat_map_kont f l Fun.id
|
||||||
let rec aux f l kont =
|
|
||||||
match l with
|
|
||||||
| [] -> kont []
|
|
||||||
| x :: l' ->
|
|
||||||
let y = f x in
|
|
||||||
let kont' tail =
|
|
||||||
match y with
|
|
||||||
| [] -> kont tail
|
|
||||||
| [ x ] -> kont (x :: tail)
|
|
||||||
| [ x; y ] -> kont (x :: y :: tail)
|
|
||||||
| l -> kont (append l tail)
|
|
||||||
in
|
|
||||||
aux f l' kont'
|
|
||||||
in
|
|
||||||
aux f l Fun.id
|
|
||||||
|
|
||||||
[@@@else_]
|
[@@@else_]
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue