diff --git a/sequence.ml b/sequence.ml index b1d9ad4..8e922bf 100644 --- a/sequence.ml +++ b/sequence.ml @@ -92,6 +92,9 @@ let flatMap f seq k = seq (fun x -> f x k) let flat_map = flatMap +let flat_map_l f seq k = + seq (fun x -> List.iter k (f x)) + let fmap f seq k = seq (fun x -> match f x with | None -> () diff --git a/sequence.mli b/sequence.mli index c4e3a90..d4a278e 100644 --- a/sequence.mli +++ b/sequence.mli @@ -158,6 +158,10 @@ val flat_map : ('a -> 'b t) -> 'a t -> 'b t element of the initial sequence, and calls {!concat}. @since 0.5 *) +val flat_map_l : ('a -> 'b list) -> 'a t -> 'b t +(** Convenience function combining {!flat_map} and {!of_list} + @since NEXT_RELEASE *) + val fmap : ('a -> 'b option) -> 'a t -> 'b t (** @deprecated use {!filter_map} since 0.6 *)