precursor-0.1.0.0: Prelude replacement

Precursor.Function

Synopsis

• const :: a -> b -> a
• fix :: (a -> a) -> a
• flip :: (a -> b -> c) -> b -> a -> c
• on :: (b -> b -> c) -> (a -> b) -> a -> a -> c
• ($) :: (a -> b) -> a -> b • (&) :: a -> (a -> b) -> b • applyN :: (a -> a) -> Int -> a -> a • converge :: Eq a => (a -> a) -> a -> a • (.:) :: (c -> d) -> (a -> b -> c) -> a -> b -> d # Documentation const :: a -> b -> a # const x is a unary function which evaluates to x for all inputs. For instance, >>> map (const 42) [0..3] [42,42,42,42]  fix :: (a -> a) -> a # fix f is the least fixed point of the function f, i.e. the least defined x such that f x = x. flip :: (a -> b -> c) -> b -> a -> c # flip f takes its (first) two arguments in the reverse order of f. on :: (b -> b -> c) -> (a -> b) -> a -> a -> c infixl 0 # (*) on f = \x y -> f x * f y. Typical usage: sortBy (compare on fst). Algebraic properties: • (*) on id = (*) (if (*) ∉ {⊥, const ⊥}) • ((*) on f) on g = (*) on (f . g) • flip on f . flip on g = flip on (g . f) ($) :: (a -> b) -> a -> b infixr 0 #

Application operator. This operator is redundant, since ordinary application (f x) means the same as (f $x). However, $ has low, right-associative binding precedence, so it sometimes allows parentheses to be omitted; for example:

    f $g$ h x  =  f (g (h x))

It is also useful in higher-order situations, such as map ($0) xs, or zipWith ($) fs xs.

(&) :: a -> (a -> b) -> b infixl 1 #

& is a reverse application operator. This provides notational convenience. Its precedence is one higher than that of the forward application operator $, which allows & to be nested in $.

Since: 4.8.0.0

applyN :: (a -> a) -> Int -> a -> a Source #

>>> applyN (2+) 2 0
4


converge :: Eq a => (a -> a) -> a -> a Source #

Apply a function until it no longer changes its input.

converge tail xs === []

(.:) :: (c -> d) -> (a -> b -> c) -> a -> b -> d infixr 8 Source #

"Blackbird" operator. For example:

aggregate f xs = sum (map f xs)
aggregate = sum .: map