<!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.Sequence</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-Sequence.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" >containers-0.2.0.1: Assorted concrete container types</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.Sequence</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" >Construction </A ></DT ><DT ><A HREF="#2" >Deconstruction </A ></DT ><DD ><DL ><DT ><A HREF="#3" >Queries </A ></DT ><DT ><A HREF="#4" >Views </A ></DT ><DT ><A HREF="#5" >Indexing </A ></DT ></DL ></DD ><DT ><A HREF="#6" >Transformations </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" ><P >General purpose finite sequences. Apart from being finite and having strict operations, sequences also differ from lists in supporting a wider variety of operations efficiently. </P ><P >An amortized running time is given for each operation, with <EM >n</EM > referring to the length of the sequence and <EM >i</EM > being the integral index used by some operations. These bounds hold even in a persistent (shared) setting. </P ><P >The implementation uses 2-3 finger trees annotated with sizes, as described in section 4.2 of </P ><UL ><LI > Ralf Hinze and Ross Paterson, "Finger trees: a simple general-purpose data structure", <EM >Journal of Functional Programming</EM > 16:2 (2006) pp 197-217. <A HREF="http://www.soi.city.ac.uk/~ross/papers/FingerTree.html" >http://www.soi.city.ac.uk/~ross/papers/FingerTree.html</A > </LI ></UL ><P ><EM >Note</EM >: Many of these operations have the same names as similar operations on lists in the <A HREF="Prelude.html" >Prelude</A >. The ambiguity may be resolved using either qualification or the <TT >hiding</TT > clause. </P ></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" ><SPAN CLASS="keyword" >data</SPAN > <A HREF="#t%3ASeq" >Seq</A > a</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Aempty" >empty</A > :: <A HREF="Data-Sequence.html#t%3ASeq" >Seq</A > a</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Asingleton" >singleton</A > :: a -> <A HREF="Data-Sequence.html#t%3ASeq" >Seq</A > a</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3A%3C%7C" >(<|)</A > :: a -> <A HREF="Data-Sequence.html#t%3ASeq" >Seq</A > a -> <A HREF="Data-Sequence.html#t%3ASeq" >Seq</A > a</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3A%7C%3E" >(|>)</A > :: <A HREF="Data-Sequence.html#t%3ASeq" >Seq</A > a -> a -> <A HREF="Data-Sequence.html#t%3ASeq" >Seq</A > a</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3A%3E%3C" >(><)</A > :: <A HREF="Data-Sequence.html#t%3ASeq" >Seq</A > a -> <A HREF="Data-Sequence.html#t%3ASeq" >Seq</A > a -> <A HREF="Data-Sequence.html#t%3ASeq" >Seq</A > a</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AfromList" >fromList</A > :: [a] -> <A HREF="Data-Sequence.html#t%3ASeq" >Seq</A > a</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Anull" >null</A > :: <A HREF="Data-Sequence.html#t%3ASeq" >Seq</A > a -> <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool" >Bool</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Alength" >length</A > :: <A HREF="Data-Sequence.html#t%3ASeq" >Seq</A > a -> <A HREF="../ghc-prim/GHC-Types.html#t%3AInt" >Int</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A HREF="#t%3AViewL" >ViewL</A > a </TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" >= <A HREF="#v%3AEmptyL" >EmptyL</A ></TD ></TR ><TR ><TD CLASS="decl" >| a <A HREF="#v%3A%3A%3C" >:<</A > (<A HREF="Data-Sequence.html#t%3ASeq" >Seq</A > a)</TD ></TR ></TABLE ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Aviewl" >viewl</A > :: <A HREF="Data-Sequence.html#t%3ASeq" >Seq</A > a -> <A HREF="Data-Sequence.html#t%3AViewL" >ViewL</A > a</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A HREF="#t%3AViewR" >ViewR</A > a </TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" >= <A HREF="#v%3AEmptyR" >EmptyR</A ></TD ></TR ><TR ><TD CLASS="decl" >| (<A HREF="Data-Sequence.html#t%3ASeq" >Seq</A > a) <A HREF="#v%3A%3A%3E" >:></A > a</TD ></TR ></TABLE ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Aviewr" >viewr</A > :: <A HREF="Data-Sequence.html#t%3ASeq" >Seq</A > a -> <A HREF="Data-Sequence.html#t%3AViewR" >ViewR</A > a</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Aindex" >index</A > :: <A HREF="Data-Sequence.html#t%3ASeq" >Seq</A > a -> <A HREF="../ghc-prim/GHC-Types.html#t%3AInt" >Int</A > -> a</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Aadjust" >adjust</A > :: (a -> a) -> <A HREF="../ghc-prim/GHC-Types.html#t%3AInt" >Int</A > -> <A HREF="Data-Sequence.html#t%3ASeq" >Seq</A > a -> <A HREF="Data-Sequence.html#t%3ASeq" >Seq</A > a</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Aupdate" >update</A > :: <A HREF="../ghc-prim/GHC-Types.html#t%3AInt" >Int</A > -> a -> <A HREF="Data-Sequence.html#t%3ASeq" >Seq</A > a -> <A HREF="Data-Sequence.html#t%3ASeq" >Seq</A > a</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Atake" >take</A > :: <A HREF="../ghc-prim/GHC-Types.html#t%3AInt" >Int</A > -> <A HREF="Data-Sequence.html#t%3ASeq" >Seq</A > a -> <A HREF="Data-Sequence.html#t%3ASeq" >Seq</A > a</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Adrop" >drop</A > :: <A HREF="../ghc-prim/GHC-Types.html#t%3AInt" >Int</A > -> <A HREF="Data-Sequence.html#t%3ASeq" >Seq</A > a -> <A HREF="Data-Sequence.html#t%3ASeq" >Seq</A > a</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AsplitAt" >splitAt</A > :: <A HREF="../ghc-prim/GHC-Types.html#t%3AInt" >Int</A > -> <A HREF="Data-Sequence.html#t%3ASeq" >Seq</A > a -> (<A HREF="Data-Sequence.html#t%3ASeq" >Seq</A > a, <A HREF="Data-Sequence.html#t%3ASeq" >Seq</A > a)</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Areverse" >reverse</A > :: <A HREF="Data-Sequence.html#t%3ASeq" >Seq</A > a -> <A HREF="Data-Sequence.html#t%3ASeq" >Seq</A > a</TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" >Documentation</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A NAME="t:Seq" ><A NAME="t%3ASeq" ></A ></A ><B >Seq</B > a </TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="ndoc" >General-purpose finite sequences. </TD ></TR ><TR ><TD CLASS="section4" ><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:Seq')" ALT="show/hide" > Instances</TD ></TR ><TR ><TD CLASS="body" ><DIV ID="i:Seq" STYLE="display:block;" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="decl" ><A HREF="../base/Control-Monad.html#t%3AMonad" >Monad</A > <A HREF="Data-Sequence.html#t%3ASeq" >Seq</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="../base/Control-Monad.html#t%3AFunctor" >Functor</A > <A HREF="Data-Sequence.html#t%3ASeq" >Seq</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="../base/Data-Typeable.html#t%3ATypeable1" >Typeable1</A > <A HREF="Data-Sequence.html#t%3ASeq" >Seq</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="../base/Control-Monad.html#t%3AMonadPlus" >MonadPlus</A > <A HREF="Data-Sequence.html#t%3ASeq" >Seq</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="../base/Data-Traversable.html#t%3ATraversable" >Traversable</A > <A HREF="Data-Sequence.html#t%3ASeq" >Seq</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="../base/Data-Foldable.html#t%3AFoldable" >Foldable</A > <A HREF="Data-Sequence.html#t%3ASeq" >Seq</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="../base/Data-Eq.html#t%3AEq" >Eq</A > a => <A HREF="../base/Data-Eq.html#t%3AEq" >Eq</A > (<A HREF="Data-Sequence.html#t%3ASeq" >Seq</A > a)</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="../base/Data-Data.html#t%3AData" >Data</A > a => <A HREF="../base/Data-Data.html#t%3AData" >Data</A > (<A HREF="Data-Sequence.html#t%3ASeq" >Seq</A > a)</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="../base/Data-Ord.html#t%3AOrd" >Ord</A > a => <A HREF="../base/Data-Ord.html#t%3AOrd" >Ord</A > (<A HREF="Data-Sequence.html#t%3ASeq" >Seq</A > a)</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="../base/Text-Read.html#t%3ARead" >Read</A > a => <A HREF="../base/Text-Read.html#t%3ARead" >Read</A > (<A HREF="Data-Sequence.html#t%3ASeq" >Seq</A > a)</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="../base/Text-Show.html#t%3AShow" >Show</A > a => <A HREF="../base/Text-Show.html#t%3AShow" >Show</A > (<A HREF="Data-Sequence.html#t%3ASeq" >Seq</A > a)</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="../base/Data-Monoid.html#t%3AMonoid" >Monoid</A > (<A HREF="Data-Sequence.html#t%3ASeq" >Seq</A > a)</TD ></TR ></TABLE ></DIV ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" ><A NAME="1" ><A NAME="1" >Construction </A ></A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:empty" ><A NAME="v%3Aempty" ></A ></A ><B >empty</B > :: <A HREF="Data-Sequence.html#t%3ASeq" >Seq</A > a</TD ></TR ><TR ><TD CLASS="doc" ><EM >O(1)</EM >. The empty sequence. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:singleton" ><A NAME="v%3Asingleton" ></A ></A ><B >singleton</B > :: a -> <A HREF="Data-Sequence.html#t%3ASeq" >Seq</A > a</TD ></TR ><TR ><TD CLASS="doc" ><EM >O(1)</EM >. A singleton sequence. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:<|" ><A NAME="v%3A%3C%7C" ></A ></A ><B >(<|)</B > :: a -> <A HREF="Data-Sequence.html#t%3ASeq" >Seq</A > a -> <A HREF="Data-Sequence.html#t%3ASeq" >Seq</A > a</TD ></TR ><TR ><TD CLASS="doc" ><EM >O(1)</EM >. Add an element to the left end of a sequence. Mnemonic: a triangle with the single element at the pointy end. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:|>" ><A NAME="v%3A%7C%3E" ></A ></A ><B >(|>)</B > :: <A HREF="Data-Sequence.html#t%3ASeq" >Seq</A > a -> a -> <A HREF="Data-Sequence.html#t%3ASeq" >Seq</A > a</TD ></TR ><TR ><TD CLASS="doc" ><EM >O(1)</EM >. Add an element to the right end of a sequence. Mnemonic: a triangle with the single element at the pointy end. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:><" ><A NAME="v%3A%3E%3C" ></A ></A ><B >(><)</B > :: <A HREF="Data-Sequence.html#t%3ASeq" >Seq</A > a -> <A HREF="Data-Sequence.html#t%3ASeq" >Seq</A > a -> <A HREF="Data-Sequence.html#t%3ASeq" >Seq</A > a</TD ></TR ><TR ><TD CLASS="doc" ><EM >O(log(min(n1,n2)))</EM >. Concatenate two sequences. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:fromList" ><A NAME="v%3AfromList" ></A ></A ><B >fromList</B > :: [a] -> <A HREF="Data-Sequence.html#t%3ASeq" >Seq</A > a</TD ></TR ><TR ><TD CLASS="doc" ><EM >O(n)</EM >. Create a sequence from a finite list of elements. There is a function <TT ><A HREF="../base/Data-Foldable.html#v%3AtoList" >toList</A ></TT > in the opposite direction for all instances of the <TT ><A HREF="../base/Data-Foldable.html#t%3AFoldable" >Foldable</A ></TT > class, including <TT ><A HREF="Data-Sequence.html#t%3ASeq" >Seq</A ></TT >. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" ><A NAME="2" ><A NAME="2" >Deconstruction </A ></A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="doc" >Additional functions for deconstructing sequences are available via the <TT ><A HREF="../base/Data-Foldable.html#t%3AFoldable" >Foldable</A ></TT > instance of <TT ><A HREF="Data-Sequence.html#t%3ASeq" >Seq</A ></TT >. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section2" ><A NAME="3" ><A NAME="3" >Queries </A ></A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:null" ><A NAME="v%3Anull" ></A ></A ><B >null</B > :: <A HREF="Data-Sequence.html#t%3ASeq" >Seq</A > a -> <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool" >Bool</A ></TD ></TR ><TR ><TD CLASS="doc" ><EM >O(1)</EM >. Is this the empty sequence? </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:length" ><A NAME="v%3Alength" ></A ></A ><B >length</B > :: <A HREF="Data-Sequence.html#t%3ASeq" >Seq</A > a -> <A HREF="../ghc-prim/GHC-Types.html#t%3AInt" >Int</A ></TD ></TR ><TR ><TD CLASS="doc" ><EM >O(1)</EM >. The number of elements in the sequence. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section2" ><A NAME="4" ><A NAME="4" >Views </A ></A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A NAME="t:ViewL" ><A NAME="t%3AViewL" ></A ></A ><B >ViewL</B > a </TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="ndoc" >View of the left end of a sequence. </TD ></TR ><TR ><TD CLASS="section4" >Constructors</TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="arg" ><A NAME="v:EmptyL" ><A NAME="v%3AEmptyL" ></A ></A ><B >EmptyL</B ></TD ><TD CLASS="rdoc" >empty sequence </TD ></TR ><TR ><TD CLASS="arg" >a <A NAME="v::<" ><A NAME="v%3A%3A%3C" ></A ></A ><B >:<</B > (<A HREF="Data-Sequence.html#t%3ASeq" >Seq</A > a)</TD ><TD CLASS="rdoc" >leftmost element and the rest of the sequence </TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="section4" ><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:ViewL')" ALT="show/hide" > Instances</TD ></TR ><TR ><TD CLASS="body" ><DIV ID="i:ViewL" STYLE="display:block;" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="decl" ><A HREF="../base/Control-Monad.html#t%3AFunctor" >Functor</A > <A HREF="Data-Sequence.html#t%3AViewL" >ViewL</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="../base/Data-Typeable.html#t%3ATypeable1" >Typeable1</A > <A HREF="Data-Sequence.html#t%3AViewL" >ViewL</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="../base/Data-Traversable.html#t%3ATraversable" >Traversable</A > <A HREF="Data-Sequence.html#t%3AViewL" >ViewL</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="../base/Data-Foldable.html#t%3AFoldable" >Foldable</A > <A HREF="Data-Sequence.html#t%3AViewL" >ViewL</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="../base/Data-Eq.html#t%3AEq" >Eq</A > a => <A HREF="../base/Data-Eq.html#t%3AEq" >Eq</A > (<A HREF="Data-Sequence.html#t%3AViewL" >ViewL</A > a)</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="../base/Data-Data.html#t%3AData" >Data</A > a => <A HREF="../base/Data-Data.html#t%3AData" >Data</A > (<A HREF="Data-Sequence.html#t%3AViewL" >ViewL</A > a)</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="../base/Data-Ord.html#t%3AOrd" >Ord</A > a => <A HREF="../base/Data-Ord.html#t%3AOrd" >Ord</A > (<A HREF="Data-Sequence.html#t%3AViewL" >ViewL</A > a)</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="../base/Text-Read.html#t%3ARead" >Read</A > a => <A HREF="../base/Text-Read.html#t%3ARead" >Read</A > (<A HREF="Data-Sequence.html#t%3AViewL" >ViewL</A > a)</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="../base/Text-Show.html#t%3AShow" >Show</A > a => <A HREF="../base/Text-Show.html#t%3AShow" >Show</A > (<A HREF="Data-Sequence.html#t%3AViewL" >ViewL</A > a)</TD ></TR ></TABLE ></DIV ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:viewl" ><A NAME="v%3Aviewl" ></A ></A ><B >viewl</B > :: <A HREF="Data-Sequence.html#t%3ASeq" >Seq</A > a -> <A HREF="Data-Sequence.html#t%3AViewL" >ViewL</A > a</TD ></TR ><TR ><TD CLASS="doc" ><EM >O(1)</EM >. Analyse the left end of a sequence. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A NAME="t:ViewR" ><A NAME="t%3AViewR" ></A ></A ><B >ViewR</B > a </TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="ndoc" >View of the right end of a sequence. </TD ></TR ><TR ><TD CLASS="section4" >Constructors</TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="arg" ><A NAME="v:EmptyR" ><A NAME="v%3AEmptyR" ></A ></A ><B >EmptyR</B ></TD ><TD CLASS="rdoc" >empty sequence </TD ></TR ><TR ><TD CLASS="arg" >(<A HREF="Data-Sequence.html#t%3ASeq" >Seq</A > a) <A NAME="v::>" ><A NAME="v%3A%3A%3E" ></A ></A ><B >:></B > a</TD ><TD CLASS="rdoc" >the sequence minus the rightmost element, and the rightmost element </TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="section4" ><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:ViewR')" ALT="show/hide" > Instances</TD ></TR ><TR ><TD CLASS="body" ><DIV ID="i:ViewR" STYLE="display:block;" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="decl" ><A HREF="../base/Control-Monad.html#t%3AFunctor" >Functor</A > <A HREF="Data-Sequence.html#t%3AViewR" >ViewR</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="../base/Data-Typeable.html#t%3ATypeable1" >Typeable1</A > <A HREF="Data-Sequence.html#t%3AViewR" >ViewR</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="../base/Data-Traversable.html#t%3ATraversable" >Traversable</A > <A HREF="Data-Sequence.html#t%3AViewR" >ViewR</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="../base/Data-Foldable.html#t%3AFoldable" >Foldable</A > <A HREF="Data-Sequence.html#t%3AViewR" >ViewR</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="../base/Data-Eq.html#t%3AEq" >Eq</A > a => <A HREF="../base/Data-Eq.html#t%3AEq" >Eq</A > (<A HREF="Data-Sequence.html#t%3AViewR" >ViewR</A > a)</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="../base/Data-Data.html#t%3AData" >Data</A > a => <A HREF="../base/Data-Data.html#t%3AData" >Data</A > (<A HREF="Data-Sequence.html#t%3AViewR" >ViewR</A > a)</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="../base/Data-Ord.html#t%3AOrd" >Ord</A > a => <A HREF="../base/Data-Ord.html#t%3AOrd" >Ord</A > (<A HREF="Data-Sequence.html#t%3AViewR" >ViewR</A > a)</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="../base/Text-Read.html#t%3ARead" >Read</A > a => <A HREF="../base/Text-Read.html#t%3ARead" >Read</A > (<A HREF="Data-Sequence.html#t%3AViewR" >ViewR</A > a)</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="../base/Text-Show.html#t%3AShow" >Show</A > a => <A HREF="../base/Text-Show.html#t%3AShow" >Show</A > (<A HREF="Data-Sequence.html#t%3AViewR" >ViewR</A > a)</TD ></TR ></TABLE ></DIV ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:viewr" ><A NAME="v%3Aviewr" ></A ></A ><B >viewr</B > :: <A HREF="Data-Sequence.html#t%3ASeq" >Seq</A > a -> <A HREF="Data-Sequence.html#t%3AViewR" >ViewR</A > a</TD ></TR ><TR ><TD CLASS="doc" ><EM >O(1)</EM >. Analyse the right end of a sequence. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section2" ><A NAME="5" ><A NAME="5" >Indexing </A ></A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:index" ><A NAME="v%3Aindex" ></A ></A ><B >index</B > :: <A HREF="Data-Sequence.html#t%3ASeq" >Seq</A > a -> <A HREF="../ghc-prim/GHC-Types.html#t%3AInt" >Int</A > -> a</TD ></TR ><TR ><TD CLASS="doc" ><EM >O(log(min(i,n-i)))</EM >. The element at the specified position, which should be a positive integer less than the size of the sequence. If the position is out of range, <TT ><A HREF="Data-Sequence.html#v%3Aindex" >index</A ></TT > fails with an error. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:adjust" ><A NAME="v%3Aadjust" ></A ></A ><B >adjust</B > :: (a -> a) -> <A HREF="../ghc-prim/GHC-Types.html#t%3AInt" >Int</A > -> <A HREF="Data-Sequence.html#t%3ASeq" >Seq</A > a -> <A HREF="Data-Sequence.html#t%3ASeq" >Seq</A > a</TD ></TR ><TR ><TD CLASS="doc" ><EM >O(log(min(i,n-i)))</EM >. Update the element at the specified position. If the position is out of range, the original sequence is returned. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:update" ><A NAME="v%3Aupdate" ></A ></A ><B >update</B > :: <A HREF="../ghc-prim/GHC-Types.html#t%3AInt" >Int</A > -> a -> <A HREF="Data-Sequence.html#t%3ASeq" >Seq</A > a -> <A HREF="Data-Sequence.html#t%3ASeq" >Seq</A > a</TD ></TR ><TR ><TD CLASS="doc" ><EM >O(log(min(i,n-i)))</EM >. Replace the element at the specified position. If the position is out of range, the original sequence is returned. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:take" ><A NAME="v%3Atake" ></A ></A ><B >take</B > :: <A HREF="../ghc-prim/GHC-Types.html#t%3AInt" >Int</A > -> <A HREF="Data-Sequence.html#t%3ASeq" >Seq</A > a -> <A HREF="Data-Sequence.html#t%3ASeq" >Seq</A > a</TD ></TR ><TR ><TD CLASS="doc" ><EM >O(log(min(i,n-i)))</EM >. The first <TT >i</TT > elements of a sequence. If <TT >i</TT > is negative, <TT ><TT ><A HREF="Data-Sequence.html#v%3Atake" >take</A ></TT > i s</TT > yields the empty sequence. If the sequence contains fewer than <TT >i</TT > elements, the whole sequence is returned. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:drop" ><A NAME="v%3Adrop" ></A ></A ><B >drop</B > :: <A HREF="../ghc-prim/GHC-Types.html#t%3AInt" >Int</A > -> <A HREF="Data-Sequence.html#t%3ASeq" >Seq</A > a -> <A HREF="Data-Sequence.html#t%3ASeq" >Seq</A > a</TD ></TR ><TR ><TD CLASS="doc" ><EM >O(log(min(i,n-i)))</EM >. Elements of a sequence after the first <TT >i</TT >. If <TT >i</TT > is negative, <TT ><TT ><A HREF="Data-Sequence.html#v%3Atake" >take</A ></TT > i s</TT > yields the whole sequence. If the sequence contains fewer than <TT >i</TT > elements, the empty sequence is returned. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:splitAt" ><A NAME="v%3AsplitAt" ></A ></A ><B >splitAt</B > :: <A HREF="../ghc-prim/GHC-Types.html#t%3AInt" >Int</A > -> <A HREF="Data-Sequence.html#t%3ASeq" >Seq</A > a -> (<A HREF="Data-Sequence.html#t%3ASeq" >Seq</A > a, <A HREF="Data-Sequence.html#t%3ASeq" >Seq</A > a)</TD ></TR ><TR ><TD CLASS="doc" ><EM >O(log(min(i,n-i)))</EM >. Split a sequence at a given position. <TT ><TT ><A HREF="Data-Sequence.html#v%3AsplitAt" >splitAt</A ></TT > i s = (<TT ><A HREF="Data-Sequence.html#v%3Atake" >take</A ></TT > i s, <TT ><A HREF="Data-Sequence.html#v%3Adrop" >drop</A ></TT > i s)</TT >. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" ><A NAME="6" ><A NAME="6" >Transformations </A ></A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:reverse" ><A NAME="v%3Areverse" ></A ></A ><B >reverse</B > :: <A HREF="Data-Sequence.html#t%3ASeq" >Seq</A > a -> <A HREF="Data-Sequence.html#t%3ASeq" >Seq</A > a</TD ></TR ><TR ><TD CLASS="doc" ><EM >O(n)</EM >. The reverse of a sequence. </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 >