diff options
Diffstat (limited to 'lib/util.ml')
-rw-r--r-- | lib/util.ml | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/lib/util.ml b/lib/util.ml index 42ad11ee1..102541731 100644 --- a/lib/util.ml +++ b/lib/util.ml @@ -442,12 +442,9 @@ let interval n m = interval_n ([],m) -let map_succeed f = - let rec map_f = function - | [] -> [] - | h::t -> try (let x = f h in x :: map_f t) with Failure _ -> map_f t - in - map_f +let map_succeed f l = + let filter x = try Some (f x) with Failure _ -> None in + List.map_filter filter l (*s Memoization *) |