From 2c82c3b135b558d6eba9ec4c5736b911328fd702 Mon Sep 17 00:00:00 2001 From: Simon Cruanes Date: Fri, 8 Apr 2016 16:35:16 +0200 Subject: [PATCH] add `Sequence.flat_map_l` --- sequence.ml | 3 +++ sequence.mli | 4 ++++ 2 files changed, 7 insertions(+) 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 *)