Music.Theory.Function

Description

Data.Function related functions.

Synopsis

# Documentation

const2 :: a -> b -> c -> a Source #

const of const.

const2 5 undefined undefined == 5
const (const 5) undefined undefined == 5

# Predicate composition.

predicate_and :: (t -> Bool) -> (t -> Bool) -> t -> Bool Source #

&& of predicates.

predicate_all :: [t -> Bool] -> t -> Bool Source #

all of predicates.

let r = [False,False,True,False,True,False]
in map (predicate_all [(> 0),(< 5),even]) [0..5] == r

predicate_or :: (t -> Bool) -> (t -> Bool) -> t -> Bool Source #

|| of predicates.

predicate_any :: [t -> Bool] -> t -> Bool Source #

any of predicates, ie. logical or of list of predicates.

let r = [True,False,True,False,True,True]
in map (predicate_any [(== 0),(== 5),even]) [0..5] == r

# Function composition.

(.:) :: (Functor f, Functor g) => (a -> b) -> f (g a) -> f (g b) infixr 8 Source #

fmap . fmap, ie. (t -> c) -> (a -> b -> t) -> a -> b -> c.

(.::) :: (Functor f, Functor g, Functor h) => (a -> b) -> f (g (h a)) -> f (g (h b)) infixr 8 Source #

fmap . .:, ie. (t -> d) -> (a -> b -> c -> t) -> a -> b -> c -> d.

(.:::) :: (Functor f, Functor g, Functor h, Functor i) => (a -> b) -> f (g (h (i a))) -> f (g (h (i b))) infixr 8 Source #

fmap . .::.

(.::::) :: (Functor f, Functor g, Functor h, Functor i, Functor j) => (a -> b) -> f (g (h (i (j a)))) -> f (g (h (i (j b)))) infixr 8 Source #

fmap . .:::.

(.:::::) :: (Functor f, Functor g, Functor h, Functor i, Functor j, Functor k) => (a -> b) -> f (g (h (i (j (k a))))) -> f (g (h (i (j (k b))))) infixr 8 Source #

fmap . .::::.