base-4.7.0.0: Basic libraries

CopyrightNils Anders Danielsson 2006
LicenseBSD-style (see the LICENSE file in the distribution)
Maintainerlibraries@haskell.org
Stabilityexperimental
Portabilityportable
Safe HaskellSafe
LanguageHaskell2010

Data.Function

Contents

Description

Simple combinators working solely on and with functions.

Synopsis

Prelude re-exports

id ∷ a → a Source

Identity function.

const ∷ a → b → a Source

Constant function.

(.) ∷ (b → c) → (a → b) → a → c infixr 9 Source

Function composition.

flip ∷ (a → b → c) → b → a → c Source

flip f takes its (first) two arguments in the reverse order of f.

($) ∷ (a → b) → a → b infixr 0 Source

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.

Other combinators

fix ∷ (a → a) → a Source

fix f is the least fixed point of the function f, i.e. the least defined x such that f x = x.

on ∷ (b → b → c) → (a → b) → a → a → c infixl 0 Source

(*) `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)