Sophie

Sophie

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

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.Array.ST</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-Array-ST.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"
>array-0.2.0.0: Mutable and immutable arrays</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.Array.ST</FONT
></TD
><TD ALIGN="right"
><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="infohead"
>Portability</TD
><TD CLASS="infoval"
>non-portable (uses Data.Array.MArray)</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"
>Boxed arrays
</A
></DT
><DT
><A HREF="#2"
>Unboxed arrays
</A
></DT
><DT
><A HREF="#3"
>Overloaded mutable array interface
</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"
>Mutable boxed and unboxed arrays in the <TT
><A HREF="../base/Control-Monad-ST.html#t%3AST"
>ST</A
></TT
> monad.
</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="../base/GHC-Arr.html#t%3ASTArray"
>STArray</A
> (<A HREF="../base/GHC-Arr.html#v%3ASTArray"
>STArray</A
>)</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3ArunSTArray"
>runSTArray</A
> :: <A HREF="../base/GHC-Arr.html#t%3AIx"
>Ix</A
> i =&gt; (<SPAN CLASS="keyword"
>forall</SPAN
> s.  <A HREF="../base/Control-Monad-ST.html#t%3AST"
>ST</A
> s (<A HREF="../base/GHC-Arr.html#t%3ASTArray"
>STArray</A
> s i e)) -&gt; <A HREF="../base/GHC-Arr.html#t%3AArray"
>Array</A
> i e</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A HREF="#t%3ASTUArray"
>STUArray</A
> s i e</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3ArunSTUArray"
>runSTUArray</A
> :: <A HREF="../base/GHC-Arr.html#t%3AIx"
>Ix</A
> i =&gt; (<SPAN CLASS="keyword"
>forall</SPAN
> s.  <A HREF="../base/Control-Monad-ST.html#t%3AST"
>ST</A
> s (<A HREF="Data-Array-ST.html#t%3ASTUArray"
>STUArray</A
> s i e)) -&gt; <A HREF="Data-Array-Unboxed.html#t%3AUArray"
>UArray</A
> i e</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AcastSTUArray"
>castSTUArray</A
> ::  <A HREF="Data-Array-ST.html#t%3ASTUArray"
>STUArray</A
> s ix a -&gt; <A HREF="../base/Control-Monad-ST.html#t%3AST"
>ST</A
> s (<A HREF="Data-Array-ST.html#t%3ASTUArray"
>STUArray</A
> s ix b)</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
>module <A HREF="Data-Array-MArray.html"
>Data.Array.MArray</A
></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"
>Boxed arrays
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base/GHC-Arr.html#t%3ASTArray"
>STArray</A
> (<A HREF="../base/GHC-Arr.html#v%3ASTArray"
>STArray</A
>)</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:runSTArray"
><A NAME="v%3ArunSTArray"
></A
></A
><B
>runSTArray</B
> :: <A HREF="../base/GHC-Arr.html#t%3AIx"
>Ix</A
> i =&gt; (<SPAN CLASS="keyword"
>forall</SPAN
> s.  <A HREF="../base/Control-Monad-ST.html#t%3AST"
>ST</A
> s (<A HREF="../base/GHC-Arr.html#t%3ASTArray"
>STArray</A
> s i e)) -&gt; <A HREF="../base/GHC-Arr.html#t%3AArray"
>Array</A
> i e</TD
></TR
><TR
><TD CLASS="doc"
>A safe way to create and work with a mutable array before returning an
 immutable array for later perusal.  This function avoids copying
 the array before returning it - it uses <TT
><A HREF="Data-Array-MArray.html#v%3AunsafeFreeze"
>unsafeFreeze</A
></TT
> internally, but
 this wrapper is a safe interface to that function.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
><A NAME="2"
><A NAME="2"
>Unboxed arrays
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A NAME="t:STUArray"
><A NAME="t%3ASTUArray"
></A
></A
><B
>STUArray</B
> s i e </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
><P
>A mutable array with unboxed elements, that can be manipulated in
 the <TT
><A HREF="../base/Control-Monad-ST.html#t%3AST"
>ST</A
></TT
> monad.  The type arguments are as follows:
</P
><UL
><LI
> <TT
>s</TT
>: the state variable argument for the <TT
><A HREF="../base/Control-Monad-ST.html#t%3AST"
>ST</A
></TT
> type
</LI
><LI
> <TT
>i</TT
>: the index type of the array (should be an instance of <TT
>Ix</TT
>)
</LI
><LI
> <TT
>e</TT
>: the element type of the array.  Only certain element types
    are supported.
</LI
></UL
><P
>An <TT
><A HREF="Data-Array-ST.html#t%3ASTUArray"
>STUArray</A
></TT
> will generally be more efficient (in terms of both time
 and space) than the equivalent boxed version (<TT
><A HREF="../base/GHC-Arr.html#t%3ASTArray"
>STArray</A
></TT
>) with the same
 element type.  However, <TT
><A HREF="Data-Array-ST.html#t%3ASTUArray"
>STUArray</A
></TT
> is strict in its elements - so
 don't use <TT
><A HREF="Data-Array-ST.html#t%3ASTUArray"
>STUArray</A
></TT
> if you require the non-strictness that
 <TT
><A HREF="../base/GHC-Arr.html#t%3ASTArray"
>STArray</A
></TT
> provides.
</P
></TD
></TR
><TR
><TD CLASS="section4"
><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:STUArray')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:STUArray" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="../base/Data-Typeable.html#t%3ATypeable3"
>Typeable3</A
> <A HREF="Data-Array-ST.html#t%3ASTUArray"
>STUArray</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Array-MArray.html#t%3AMArray"
>MArray</A
> (<A HREF="Data-Array-ST.html#t%3ASTUArray"
>STUArray</A
> s) <A HREF="../base/Data-Word.html#t%3AWord64"
>Word64</A
> (<A HREF="../base/Control-Monad-ST.html#t%3AST"
>ST</A
> s)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Array-MArray.html#t%3AMArray"
>MArray</A
> (<A HREF="Data-Array-ST.html#t%3ASTUArray"
>STUArray</A
> s) <A HREF="../base/Data-Word.html#t%3AWord32"
>Word32</A
> (<A HREF="../base/Control-Monad-ST.html#t%3AST"
>ST</A
> s)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Array-MArray.html#t%3AMArray"
>MArray</A
> (<A HREF="Data-Array-ST.html#t%3ASTUArray"
>STUArray</A
> s) <A HREF="../base/Data-Word.html#t%3AWord16"
>Word16</A
> (<A HREF="../base/Control-Monad-ST.html#t%3AST"
>ST</A
> s)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Array-MArray.html#t%3AMArray"
>MArray</A
> (<A HREF="Data-Array-ST.html#t%3ASTUArray"
>STUArray</A
> s) <A HREF="../base/Data-Word.html#t%3AWord8"
>Word8</A
> (<A HREF="../base/Control-Monad-ST.html#t%3AST"
>ST</A
> s)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Array-MArray.html#t%3AMArray"
>MArray</A
> (<A HREF="Data-Array-ST.html#t%3ASTUArray"
>STUArray</A
> s) <A HREF="../base/Data-Int.html#t%3AInt64"
>Int64</A
> (<A HREF="../base/Control-Monad-ST.html#t%3AST"
>ST</A
> s)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Array-MArray.html#t%3AMArray"
>MArray</A
> (<A HREF="Data-Array-ST.html#t%3ASTUArray"
>STUArray</A
> s) <A HREF="../base/Data-Int.html#t%3AInt32"
>Int32</A
> (<A HREF="../base/Control-Monad-ST.html#t%3AST"
>ST</A
> s)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Array-MArray.html#t%3AMArray"
>MArray</A
> (<A HREF="Data-Array-ST.html#t%3ASTUArray"
>STUArray</A
> s) <A HREF="../base/Data-Int.html#t%3AInt16"
>Int16</A
> (<A HREF="../base/Control-Monad-ST.html#t%3AST"
>ST</A
> s)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Array-MArray.html#t%3AMArray"
>MArray</A
> (<A HREF="Data-Array-ST.html#t%3ASTUArray"
>STUArray</A
> s) <A HREF="../base/Data-Int.html#t%3AInt8"
>Int8</A
> (<A HREF="../base/Control-Monad-ST.html#t%3AST"
>ST</A
> s)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Array-MArray.html#t%3AMArray"
>MArray</A
> (<A HREF="Data-Array-ST.html#t%3ASTUArray"
>STUArray</A
> s) <A HREF="../ghc-prim/GHC-Types.html#t%3ADouble"
>Double</A
> (<A HREF="../base/Control-Monad-ST.html#t%3AST"
>ST</A
> s)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Array-MArray.html#t%3AMArray"
>MArray</A
> (<A HREF="Data-Array-ST.html#t%3ASTUArray"
>STUArray</A
> s) <A HREF="../ghc-prim/GHC-Types.html#t%3AFloat"
>Float</A
> (<A HREF="../base/Control-Monad-ST.html#t%3AST"
>ST</A
> s)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Array-MArray.html#t%3AMArray"
>MArray</A
> (<A HREF="Data-Array-ST.html#t%3ASTUArray"
>STUArray</A
> s) <A HREF="../base/Data-Word.html#t%3AWord"
>Word</A
> (<A HREF="../base/Control-Monad-ST.html#t%3AST"
>ST</A
> s)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Array-MArray.html#t%3AMArray"
>MArray</A
> (<A HREF="Data-Array-ST.html#t%3ASTUArray"
>STUArray</A
> s) <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
> (<A HREF="../base/Control-Monad-ST.html#t%3AST"
>ST</A
> s)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Array-MArray.html#t%3AMArray"
>MArray</A
> (<A HREF="Data-Array-ST.html#t%3ASTUArray"
>STUArray</A
> s) <A HREF="../ghc-prim/GHC-Types.html#t%3AChar"
>Char</A
> (<A HREF="../base/Control-Monad-ST.html#t%3AST"
>ST</A
> s)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Array-MArray.html#t%3AMArray"
>MArray</A
> (<A HREF="Data-Array-ST.html#t%3ASTUArray"
>STUArray</A
> s) <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
> (<A HREF="../base/Control-Monad-ST.html#t%3AST"
>ST</A
> s)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Array-MArray.html#t%3AMArray"
>MArray</A
> (<A HREF="Data-Array-ST.html#t%3ASTUArray"
>STUArray</A
> s) (<A HREF="../base/Foreign-StablePtr.html#t%3AStablePtr"
>StablePtr</A
> a) (<A HREF="../base/Control-Monad-ST.html#t%3AST"
>ST</A
> s)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Array-MArray.html#t%3AMArray"
>MArray</A
> (<A HREF="Data-Array-ST.html#t%3ASTUArray"
>STUArray</A
> s) (<A HREF="../base/Foreign-Ptr.html#t%3AFunPtr"
>FunPtr</A
> a) (<A HREF="../base/Control-Monad-ST.html#t%3AST"
>ST</A
> s)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Array-MArray.html#t%3AMArray"
>MArray</A
> (<A HREF="Data-Array-ST.html#t%3ASTUArray"
>STUArray</A
> s) (<A HREF="../base/Foreign-Ptr.html#t%3APtr"
>Ptr</A
> a) (<A HREF="../base/Control-Monad-ST.html#t%3AST"
>ST</A
> s)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base/Data-Eq.html#t%3AEq"
>Eq</A
> (<A HREF="Data-Array-ST.html#t%3ASTUArray"
>STUArray</A
> s i e)</TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:runSTUArray"
><A NAME="v%3ArunSTUArray"
></A
></A
><B
>runSTUArray</B
> :: <A HREF="../base/GHC-Arr.html#t%3AIx"
>Ix</A
> i =&gt; (<SPAN CLASS="keyword"
>forall</SPAN
> s.  <A HREF="../base/Control-Monad-ST.html#t%3AST"
>ST</A
> s (<A HREF="Data-Array-ST.html#t%3ASTUArray"
>STUArray</A
> s i e)) -&gt; <A HREF="Data-Array-Unboxed.html#t%3AUArray"
>UArray</A
> i e</TD
></TR
><TR
><TD CLASS="doc"
>A safe way to create and work with an unboxed mutable array before
 returning an immutable array for later perusal.  This function
 avoids copying the array before returning it - it uses
 <TT
><A HREF="Data-Array-MArray.html#v%3AunsafeFreeze"
>unsafeFreeze</A
></TT
> internally, but this wrapper is a safe interface to
 that function.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:castSTUArray"
><A NAME="v%3AcastSTUArray"
></A
></A
><B
>castSTUArray</B
> ::  <A HREF="Data-Array-ST.html#t%3ASTUArray"
>STUArray</A
> s ix a -&gt; <A HREF="../base/Control-Monad-ST.html#t%3AST"
>ST</A
> s (<A HREF="Data-Array-ST.html#t%3ASTUArray"
>STUArray</A
> s ix b)</TD
></TR
><TR
><TD CLASS="doc"
>Casts an <TT
><A HREF="Data-Array-ST.html#t%3ASTUArray"
>STUArray</A
></TT
> with one element type into one with a
 different element type.  All the elements of the resulting array
 are undefined (unless you know what you're doing...).
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
><A NAME="3"
><A NAME="3"
>Overloaded mutable array interface
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
>module <A HREF="Data-Array-MArray.html"
>Data.Array.MArray</A
></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
>