harp-0.4: HaRP allows pattern-matching with regular expressions

Portability | portable
Stability | experimental
Maintainer | Niklas Broberg, d00nibro@dtek.chalmers.se
Safe Haskell | Safe-Inferred

Harp.Match

Description

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

Synopsis

- data Match e a
- runMatch :: Match e a -> [e] -> Maybe a
- baseMatch :: (a -> Maybe b) -> Match a (a, b)
- manyMatch :: Match e a -> Match e [a]
- gManyMatch :: Match e a -> Match e [a]
- foldComp :: [[a] -> [a]] -> [a] -> [a]
- unzip0 :: [()] -> ()
- unzip1 :: [a] -> [a]
- unzip2 :: [(a, b)] -> ([a], [b])
- unzip3 :: [(a, b, c)] -> ([a], [b], [c])
- unzip4 :: [(a, b, c, d)] -> ([a], [b], [c], [d])
- unzip5 :: [(a, b, c, d, e)] -> ([a], [b], [c], [d], [e])
- unzip6 :: [(a, b, c, d, e, f)] -> ([a], [b], [c], [d], [e], [f])
- unzip7 :: [(a, b, c, d, e, f, g)] -> ([a], [b], [c], [d], [e], [f], [g])
- (+++) :: Match e a -> Match e a -> Match e a

# Documentation

data Match e a Source

The Match monad

Instances

Monad (Match e) |

runMatch :: Match e a -> [e] -> Maybe aSource

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`.

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 aSource