mirror of
https://github.com/c-cube/ocaml-containers.git
synced 2025-12-06 11:15:31 -05:00
Merge pull request #458 from benbellick/add-predicate-combinator
predicate combinators: and_p and or_p
This commit is contained in:
commit
5abb63517c
2 changed files with 13 additions and 0 deletions
|
|
@ -8,8 +8,11 @@ include Sys
|
||||||
include Stdlib
|
include Stdlib
|
||||||
include Fun
|
include Fun
|
||||||
|
|
||||||
|
let[@inline] and_pred f g x = f x && g x
|
||||||
|
let[@inline] or_pred f g x = f x || g x
|
||||||
let[@inline] compose f g x = g (f x)
|
let[@inline] compose f g x = g (f x)
|
||||||
let[@inline] compose_binop f g x y = g (f x) (f y)
|
let[@inline] compose_binop f g x y = g (f x) (f y)
|
||||||
|
|
||||||
let[@inline] curry f x y = f (x, y)
|
let[@inline] curry f x y = f (x, y)
|
||||||
let[@inline] uncurry f (x, y) = f x y
|
let[@inline] uncurry f (x, y) = f x y
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,16 @@
|
||||||
include module type of Fun
|
include module type of Fun
|
||||||
(** @inline *)
|
(** @inline *)
|
||||||
|
|
||||||
|
val and_pred : ('a -> bool) -> ('a -> bool) -> 'a -> bool
|
||||||
|
(** [and_p f g x] is [(f x) && (g x)].
|
||||||
|
Produces a predicate which is a conjunction of the two predicates.
|
||||||
|
*)
|
||||||
|
|
||||||
|
val or_pred : ('a -> bool) -> ('a -> bool) -> 'a -> bool
|
||||||
|
(** [or_p f g x] is [(f x) || (g x)].
|
||||||
|
Produces a predicate which is a disjunction of the two predicates.
|
||||||
|
*)
|
||||||
|
|
||||||
val compose : ('a -> 'b) -> ('b -> 'c) -> 'a -> 'c
|
val compose : ('a -> 'b) -> ('b -> 'c) -> 'a -> 'c
|
||||||
(** [compose f g x] is [g (f x)]. Composition. *)
|
(** [compose f g x] is [g (f x)]. Composition. *)
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue