diff options
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/util.ml | 15 | ||||
| -rw-r--r-- | lib/util.mli | 2 |
2 files changed, 8 insertions, 9 deletions
diff --git a/lib/util.ml b/lib/util.ml index a518399937..9aee36e206 100644 --- a/lib/util.ml +++ b/lib/util.ml @@ -193,6 +193,13 @@ let list_try_find_i f = in try_find_f +let list_try_find f = + let rec try_find_f = function + | [] -> failwith "try_find" + | h::t -> try f h with Failure _ -> try_find_f t + in + try_find_f + let rec list_uniquize = function | [] -> [] | h::t -> if List.mem h t then list_uniquize t else h::(list_uniquize t) @@ -259,14 +266,6 @@ let list_share_tails l1 l2 = let list_join_map f l = List.flatten (List.map f l) -let list_try_find f = - let rec try_find_f = function - | [] -> failwith "try_find" - | h::t -> try f h with Failure _ -> try_find_f t - in - try_find_f - - (* Arrays *) let array_exists f v = diff --git a/lib/util.mli b/lib/util.mli index 7d526aa62a..1a70a62f93 100644 --- a/lib/util.mli +++ b/lib/util.mli @@ -70,6 +70,7 @@ val list_except : 'a -> 'a list -> 'a list val list_for_all2eq : ('a -> 'b -> bool) -> 'a list -> 'b list -> bool val list_sep_last : 'a list -> 'a * 'a list val list_try_find_i : (int -> 'a -> 'b) -> int -> 'a list -> 'b +val list_try_find : ('a -> 'b) -> 'a list -> 'b val list_uniquize : 'a list -> 'a list val list_subset : 'a list -> 'a list -> bool val list_splitby : ('a -> bool) -> 'a list -> 'a list * 'a list @@ -83,7 +84,6 @@ val list_map_append : ('a -> 'b list) -> 'a list -> 'b list val list_map_append2 : ('a -> 'b -> 'c list) -> 'a list -> 'b list -> 'c list val list_share_tails : 'a list -> 'a list -> 'a list * 'a list * 'a list val list_join_map : ('a -> 'b list) -> 'a list -> 'b list -val list_try_find : ('a -> 'b) -> 'a list -> 'b (*s Arrays. *) |
