package travesty
Monadically traversable containers
Install
Dune Dependency
Authors
Maintainers
Sources
travesty-v0.3.0.tbz
sha256=40ada5c475cfeba7d933eec133294d1b5ef5da6ce864c9746b2ce4ce49b5e3a4
md5=dc818d6b232f13edb388d25781cd99a2
doc/travesty/Travesty/T_fn/index.html
Module Travesty.T_fn
Source
Miscellaneous function combinators.
T_fn
contains various higher-order functions in the style of Core_kernel's Fn
module.
on lift f
lifts a binary function f
using the lifter lift
. It does the same thing as the `on` function from Haskell, but with arguments flipped to make sense without infixing.
Example:
let ints = on fst Int.equal (42, "banana") (42, "apple") in
let strs = on snd String.equal (42, "banana") (42, "apple") in
ints, strs (* --> true, false *)
conj f g
lifts &&
over predicates f
and g
. It is short-circuiting: g
is never called if f
returns false.
Examples:
let is_zero = Int.(conj is_non_negative is_non_positive)
(* Short-circuiting: *)
conj (fun () -> true) (fun () -> failwith "oops") (); (* --> exception *)
conj (fun () -> false) (fun () -> failwith "oops") (); (* --> false *)
disj f g
lifts ||
over predicates f
and g
. It is short-circuiting: g
is never called if f
returns true.
Examples:
let is_not_zero = Int.(disj is_negative is_positive)
(* Short-circuiting: *)
disj (fun () -> false) (fun () -> failwith "oops") (); (* --> exception *)
disj (fun () -> true) (fun () -> failwith "oops") (); (* --> false *)
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>