hextra-1.1.0.1: Generic and niche utility functions and more for Haskell.
Safe HaskellSafe-Inferred
LanguageHaskell2010

Hextra.Function

Description

Extra functions relating to functions (higher-order functions)

Synopsis
  • curry3 :: forall a b c d. ((a, b, c) -> d) -> a -> b -> c -> d
  • uncurry3 :: forall a b c d. (a -> b -> c -> d) -> (a, b, c) -> d
  • uncurry3' :: forall a b c d. (a -> b -> c -> d) -> a -> (b, c) -> d
  • curry4 :: forall a b c d e. ((a, b, c, d) -> e) -> a -> b -> c -> d -> e
  • uncurry4 :: forall a b c d e. (a -> b -> c -> d -> e) -> (a, b, c, d) -> e
  • applyIfJustMonoid :: forall a b x. Monoid x => (a -> b) -> (x -> a) -> Maybe x -> b
  • combineIfJust' :: forall a b x. (a -> b -> b) -> (x -> a) -> Maybe x -> b -> b
  • (<.) :: forall b c a. (b -> b -> c) -> (a -> b) -> a -> a -> c
  • (.>) :: forall b c a. (b -> c) -> (a -> a -> b) -> a -> a -> c
  • (.<) :: forall a b c. (a -> a -> b) -> (b -> c) -> a -> a -> c
  • (>.) :: forall a b c. (a -> b) -> (b -> b -> c) -> a -> a -> c
  • (<.-) :: forall a b c. (a -> b) -> (b -> c) -> a -> c

Documentation

curry3 :: forall a b c d. ((a, b, c) -> d) -> a -> b -> c -> d Source #

Like curry, but for functions with three arguments

uncurry3 :: forall a b c d. (a -> b -> c -> d) -> (a, b, c) -> d Source #

Like uncurry, but for functions with three arguments

uncurry3' :: forall a b c d. (a -> b -> c -> d) -> a -> (b, c) -> d Source #

curry4 :: forall a b c d e. ((a, b, c, d) -> e) -> a -> b -> c -> d -> e Source #

Like curry, but for functions with four arguments

uncurry4 :: forall a b c d e. (a -> b -> c -> d -> e) -> (a, b, c, d) -> e Source #

Like uncurry, but for functions with four arguments

applyIfJustMonoid :: forall a b x. Monoid x => (a -> b) -> (x -> a) -> Maybe x -> b Source #

combineIfJust' :: forall a b x. (a -> b -> b) -> (x -> a) -> Maybe x -> b -> b Source #

Combines two things where one of them is wrapped in Maybe If the Maybe thing is Nothing, just return the plain thing Requires that 2nd argument type and output type of the combining function are the same

(<.) :: forall b c a. (b -> b -> c) -> (a -> b) -> a -> a -> c infixr 9 Source #

Applies a unary function on the inputs of a binary function

(.>) :: forall b c a. (b -> c) -> (a -> a -> b) -> a -> a -> c infixr 9 Source #

Applies a unary function on the output of a binary function

(.<) :: forall a b c. (a -> a -> b) -> (b -> c) -> a -> a -> c infixr 9 Source #

Flipped (.>)

(>.) :: forall a b c. (a -> b) -> (b -> b -> c) -> a -> a -> c infixr 9 Source #

Flipped (<.)

(<.-) :: forall a b c. (a -> b) -> (b -> c) -> a -> c infixr 9 Source #

Flipped (.)