Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > 1f2b142b9d2ef4849a6f5316fa1c5b12 > files > 1367

ghc-6.10.4-1mdv2010.0.i586.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--Rendered using the Haskell Html Library v0.2-->
<HTML
><HEAD
><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
><TITLE
>Data.Function</TITLE
><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
></SCRIPT
><SCRIPT TYPE="text/javascript"
>window.onload = function () {setSynopsis("mini_Data-Function.html")};</SCRIPT
></HEAD
><BODY
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="topbar"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD
><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
></TD
><TD CLASS="title"
>base-4.1.0.0: Basic libraries</TD
><TD CLASS="topbut"
><A HREF="index.html"
>Contents</A
></TD
><TD CLASS="topbut"
><A HREF="doc-index.html"
>Index</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="modulebar"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD
><FONT SIZE="6"
>Data.Function</FONT
></TD
><TD ALIGN="right"
><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="infohead"
>Portability</TD
><TD CLASS="infoval"
>portable</TD
></TR
><TR
><TD CLASS="infohead"
>Stability</TD
><TD CLASS="infoval"
>experimental</TD
></TR
><TR
><TD CLASS="infohead"
>Maintainer</TD
><TD CLASS="infoval"
>libraries@haskell.org</TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="section4"
><B
>Contents</B
></TD
></TR
><TR
><TD
><DL
><DT
><A HREF="#1"
><A HREF="Prelude.html"
>Prelude</A
> re-exports
</A
></DT
><DT
><A HREF="#2"
>Other combinators
</A
></DT
></DL
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
>Description</TD
></TR
><TR
><TD CLASS="doc"
>Simple combinators working solely on and with functions.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
>Synopsis</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="#v%3Aid"
>id</A
> ::  a -&gt; a</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Aconst"
>const</A
> ::  a -&gt; b -&gt; a</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3A."
>(.)</A
> ::  (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Aflip"
>flip</A
> ::  (a -&gt; b -&gt; c) -&gt; b -&gt; a -&gt; c</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3A%24"
>($)</A
> ::  (a -&gt; b) -&gt; a -&gt; b</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Afix"
>fix</A
> ::  (a -&gt; a) -&gt; a</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Aon"
>on</A
> ::  (b -&gt; b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; a -&gt; c</TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
><A NAME="1"
><A NAME="1"
><A HREF="Prelude.html"
>Prelude</A
> re-exports
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:id"
><A NAME="v%3Aid"
></A
></A
><B
>id</B
> ::  a -&gt; a</TD
></TR
><TR
><TD CLASS="doc"
>Identity function.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:const"
><A NAME="v%3Aconst"
></A
></A
><B
>const</B
> ::  a -&gt; b -&gt; a</TD
></TR
><TR
><TD CLASS="doc"
>Constant function.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:."
><A NAME="v%3A."
></A
></A
><B
>(.)</B
> ::  (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c</TD
></TR
><TR
><TD CLASS="doc"
>Function composition.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:flip"
><A NAME="v%3Aflip"
></A
></A
><B
>flip</B
> ::  (a -&gt; b -&gt; c) -&gt; b -&gt; a -&gt; c</TD
></TR
><TR
><TD CLASS="doc"
><TT
><TT
><A HREF="Data-Function.html#v%3Aflip"
>flip</A
></TT
> f</TT
> takes its (first) two arguments in the reverse order of <TT
>f</TT
>.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:$"
><A NAME="v%3A%24"
></A
></A
><B
>($)</B
> ::  (a -&gt; b) -&gt; a -&gt; b</TD
></TR
><TR
><TD CLASS="doc"
><P
>Application operator.  This operator is redundant, since ordinary
 application <TT
>(f x)</TT
> means the same as <TT
>(f <TT
><A HREF="Data-Function.html#v%3A%24"
>$</A
></TT
> x)</TT
>. However, <TT
><A HREF="Data-Function.html#v%3A%24"
>$</A
></TT
> has
 low, right-associative binding precedence, so it sometimes allows
 parentheses to be omitted; for example:
</P
><PRE
>     f $ g $ h x  =  f (g (h x))
</PRE
><P
>It is also useful in higher-order situations, such as <TT
><TT
><A HREF="Data-List.html#v%3Amap"
>map</A
></TT
> (<TT
><A HREF="Data-Function.html#v%3A%24"
>$</A
></TT
> 0) xs</TT
>,
 or <TT
>Data.List.zipWith (<TT
><A HREF="Data-Function.html#v%3A%24"
>$</A
></TT
>) fs xs</TT
>.
</P
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
><A NAME="2"
><A NAME="2"
>Other combinators
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:fix"
><A NAME="v%3Afix"
></A
></A
><B
>fix</B
> ::  (a -&gt; a) -&gt; a</TD
></TR
><TR
><TD CLASS="doc"
><TT
><TT
><A HREF="Data-Function.html#v%3Afix"
>fix</A
></TT
> f</TT
> is the least fixed point of the function <TT
>f</TT
>,
 i.e. the least defined <TT
>x</TT
> such that <TT
>f x = x</TT
>.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:on"
><A NAME="v%3Aon"
></A
></A
><B
>on</B
> ::  (b -&gt; b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; a -&gt; c</TD
></TR
><TR
><TD CLASS="doc"
><P
><TT
>(*) `on` f = \x y -&gt; f x * f y</TT
>.
</P
><P
>Typical usage: <TT
>Data.List.sortBy (<TT
><A HREF="Data-Ord.html#v%3Acompare"
>compare</A
></TT
> `on` <TT
><A HREF="Data-Tuple.html#v%3Afst"
>fst</A
></TT
>)</TT
>.
</P
><P
>Algebraic properties:
</P
><UL
><LI
> <TT
>(*) `on` <TT
><A HREF="Data-Function.html#v%3Aid"
>id</A
></TT
> = (*)</TT
> (if <TT
>(*) &#x2209; {&#x22a5;, <TT
><A HREF="Data-Function.html#v%3Aconst"
>const</A
></TT
> &#x22a5;}</TT
>)
</LI
><LI
><PRE
>((*) `on` f) `on` g = (*) `on` (f . g)</PRE
></LI
><LI
><PRE
><TT
><A HREF="Data-Function.html#v%3Aflip"
>flip</A
></TT
> on f . <TT
><A HREF="Data-Function.html#v%3Aflip"
>flip</A
></TT
> on g = <TT
><A HREF="Data-Function.html#v%3Aflip"
>flip</A
></TT
> on (g . f)</PRE
></LI
></UL
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="botbar"
>Produced by <A HREF="http://www.haskell.org/haddock/"
>Haddock</A
> version 2.4.2</TD
></TR
></TABLE
></BODY
></HTML
>