harp-0.4.3.6: HaRP allows pattern-matching with regular expressions
Copyright(c) Niklas Broberg 2004
LicenseBSD-style (see the file LICENSE.txt)
MaintainerNiklas Broberg, d00nibro@dtek.chalmers.se
Stabilityexperimental
Portabilityportable
Safe HaskellSafe-Inferred
LanguageHaskell2010

Harp.Match

Description

Functions that simulate the behavior of regular patterns using a Match monad for parsing lists.

Synopsis

Documentation

data Match e a Source #

The Match monad

Instances

Instances details
Applicative (Match e) Source # 
Instance details

Defined in Harp.Match

Methods

pure :: a -> Match e a #

(<*>) :: Match e (a -> b) -> Match e a -> Match e b #

liftA2 :: (a -> b -> c) -> Match e a -> Match e b -> Match e c #

(*>) :: Match e a -> Match e b -> Match e b #

(<*) :: Match e a -> Match e b -> Match e a #

Functor (Match e) Source # 
Instance details

Defined in Harp.Match

Methods

fmap :: (a -> b) -> Match e a -> Match e b #

(<$) :: a -> Match e b -> Match e a #

Monad (Match e) Source # 
Instance details

Defined in Harp.Match

Methods

(>>=) :: Match e a -> (a -> Match e b) -> Match e b #

(>>) :: Match e a -> Match e b -> Match e b #

return :: a -> Match e a #

runMatch :: Match e a -> [e] -> Maybe a Source #

baseMatch :: (a -> Maybe b) -> Match a (a, b) Source #

manyMatch :: Match e a -> Match e [a] Source #

gManyMatch :: Match e a -> Match e [a] Source #

foldComp :: [[a] -> [a]] -> [a] -> [a] Source #

unzip0 :: [()] -> () Source #

unzip1 :: [a] -> [a] Source #

unzip2 :: [(a, b)] -> ([a], [b]) Source #

unzip3 :: [(a, b, c)] -> ([a], [b], [c]) #

The unzip3 function takes a list of triples and returns three lists, analogous to unzip.

>>> unzip3 []
([],[],[])
>>> unzip3 [(1, 'a', True), (2, 'b', False)]
([1,2],"ab",[True,False])

unzip4 :: [(a, b, c, d)] -> ([a], [b], [c], [d]) #

The unzip4 function takes a list of quadruples and returns four lists, analogous to unzip.

unzip5 :: [(a, b, c, d, e)] -> ([a], [b], [c], [d], [e]) #

The unzip5 function takes a list of five-tuples and returns five lists, analogous to unzip.

unzip6 :: [(a, b, c, d, e, f)] -> ([a], [b], [c], [d], [e], [f]) #

The unzip6 function takes a list of six-tuples and returns six lists, analogous to unzip.

unzip7 :: [(a, b, c, d, e, f, g)] -> ([a], [b], [c], [d], [e], [f], [g]) #

The unzip7 function takes a list of seven-tuples and returns seven lists, analogous to unzip.

(+++) :: Match e a -> Match e a -> Match e a Source #