A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from http://hackage.haskell.org/packages/archive/base/4.6.0.0/doc/html/Text-Read.html below:

Text.Read

class Read a whereSource

Parsing of Strings, producing values.

Minimal complete definition: readsPrec (or, for GHC only, readPrec)

Derived instances of Read make the following assumptions, which derived instances of Show obey:

For example, given the declarations

 infixr 5 :^:
 data Tree a =  Leaf a  |  Tree a :^: Tree a

the derived instance of Read in Haskell 98 is equivalent to

 instance (Read a) => Read (Tree a) where

         readsPrec d r =  readParen (d > app_prec)
                          (\r -> [(Leaf m,t) |
                                  ("Leaf",s) <- lex r,
                                  (m,t) <- readsPrec (app_prec+1) s]) r

                       ++ readParen (d > up_prec)
                          (\r -> [(u:^:v,w) |
                                  (u,s) <- readsPrec (up_prec+1) r,
                                  (":^:",t) <- lex s,
                                  (v,w) <- readsPrec (up_prec+1) t]) r

           where app_prec = 10
                 up_prec = 5

Note that right-associativity of :^: is unused.

The derived instance in GHC is equivalent to

 instance (Read a) => Read (Tree a) where

         readPrec = parens $ (prec app_prec $ do
                                  Ident "Leaf" <- lexP
                                  m <- step readPrec
                                  return (Leaf m))

                      +++ (prec up_prec $ do
                                  u <- step readPrec
                                  Symbol ":^:" <- lexP
                                  v <- step readPrec
                                  return (u :^: v))

           where app_prec = 10
                 up_prec = 5

         readListPrec = readListPrecDefault

Methods

readsPrecSource

Arguments

:: Int

the operator precedence of the enclosing context (a number from 0 to 11). Function application has precedence 10.

-> ReadS a  

attempts to parse a value from the front of the string, returning a list of (parsed value, remaining string) pairs. If there is no successful parse, the returned list is empty.

Derived instances of Read and Show satisfy the following:

That is, readsPrec parses the string produced by showsPrec, and delivers the value that showsPrec started with.

readList :: ReadS [a]Source

The method readList is provided to allow the programmer to give a specialised way of parsing lists of values. For example, this is used by the predefined Read instance of the Char type, where values of type String should be are expected to use double quotes, rather than square brackets.

readPrec :: ReadPrec aSource

Proposed replacement for readsPrec using new-style parsers (GHC only).

readListPrec :: ReadPrec [a]Source

Proposed replacement for readList using new-style parsers (GHC only). The default definition uses readList. Instances that define readPrec should also define readListPrec as readListPrecDefault.

Instances

Read Bool   Read Char   Read Double   Read Float   Read Int   Read Int8   Read Int16   Read Int32   Read Int64   Read Integer   Read Ordering   Read Word   Read Word8   Read Word16   Read Word32   Read Word64   Read ()   Read Lexeme   Read IOMode   Read SeekMode   Read CUIntMax   Read CIntMax   Read CUIntPtr   Read CIntPtr   Read CSUSeconds   Read CUSeconds   Read CTime   Read CClock   Read CSigAtomic   Read CWchar   Read CSize   Read CPtrdiff   Read CDouble   Read CFloat   Read CULLong   Read CLLong   Read CULong   Read CLong   Read CUInt   Read CInt   Read CUShort   Read CShort   Read CUChar   Read CSChar   Read CChar   Read GeneralCategory   Read Associativity   Read Fixity   Read Arity   Read IntPtr   Read WordPtr   Read Any   Read All   Read NewlineMode   Read Newline   Read BufferMode   Read ExitCode   Read Fd   Read CRLim   Read CTcflag   Read CSpeed   Read CCc   Read CUid   Read CNlink   Read CGid   Read CSsize   Read CPid   Read COff   Read CMode   Read CIno   Read CDev   Read GCStats   Read Version   Read a => Read [a]   (Integral a, Read a) => Read (Ratio a)   Read a => Read (Maybe a)   Read a => Read (Last a)   Read a => Read (First a)   Read a => Read (Product a)   Read a => Read (Sum a)   Read a => Read (Dual a)   Read a => Read (Complex a)   HasResolution a => Read (Fixed a)   (Read a, Read b) => Read (Either a b)   (Read a, Read b) => Read (a, b)   (Ix a, Read a, Read b) => Read (Array a b)   (SingRep k a rep, Read rep, Eq rep) => Read (Sing k a)   (Read a, Read b, Read c) => Read (a, b, c)   (Read a, Read b, Read c, Read d) => Read (a, b, c, d)   (Read a, Read b, Read c, Read d, Read e) => Read (a, b, c, d, e)   (Read a, Read b, Read c, Read d, Read e, Read f) => Read (a, b, c, d, e, f)   (Read a, Read b, Read c, Read d, Read e, Read f, Read g) => Read (a, b, c, d, e, f, g)   (Read a, Read b, Read c, Read d, Read e, Read f, Read g, Read h) => Read (a, b, c, d, e, f, g, h)   (Read a, Read b, Read c, Read d, Read e, Read f, Read g, Read h, Read i) => Read (a, b, c, d, e, f, g, h, i)   (Read a, Read b, Read c, Read d, Read e, Read f, Read g, Read h, Read i, Read j) => Read (a, b, c, d, e, f, g, h, i, j)   (Read a, Read b, Read c, Read d, Read e, Read f, Read g, Read h, Read i, Read j, Read k) => Read (a, b, c, d, e, f, g, h, i, j, k)   (Read a, Read b, Read c, Read d, Read e, Read f, Read g, Read h, Read i, Read j, Read k, Read l) => Read (a, b, c, d, e, f, g, h, i, j, k, l)   (Read a, Read b, Read c, Read d, Read e, Read f, Read g, Read h, Read i, Read j, Read k, Read l, Read m) => Read (a, b, c, d, e, f, g, h, i, j, k, l, m)   (Read a, Read b, Read c, Read d, Read e, Read f, Read g, Read h, Read i, Read j, Read k, Read l, Read m, Read n) => Read (a, b, c, d, e, f, g, h, i, j, k, l, m, n)   (Read a, Read b, Read c, Read d, Read e, Read f, Read g, Read h, Read i, Read j, Read k, Read l, Read m, Read n, Read o) => Read (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o)  

type ReadS a = String -> [(a, String)]Source

A parser for a type a, represented as a function that takes a String and returns a list of possible parses as (a,String) pairs.

Note that this kind of backtracking parser is very inefficient; reading a large structure may be quite slow (cf ReadP).

read :: Read a => String -> aSource

The read function reads input from a string, which must be completely consumed by the input process.

lex :: ReadS StringSource

The lex function reads a single lexeme from the input, discarding initial white space, and returning the characters that constitute the lexeme. If the input string contains only white space, lex returns a single successful `lexeme' consisting of the empty string. (Thus lex "" = [("","")].) If there is no legal lexeme at the beginning of the input string, lex fails (i.e. returns []).

This lexer is not completely faithful to the Haskell lexical syntax in the following respects:

parens :: ReadPrec a -> ReadPrec aSource

(parens p) parses "P", "(P0)", "((P0))", etc, where p parses "P" in the current precedence context and parses "P0" in precedence context zero


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4