Karya, built on 2018-05-31T02:46:59 (patch 0a1a35479c514820d77330ae8a978975ba22a47a)

Util.Then

Description

List functions with continuations. This allows you to chain them and easily express things like 'take until f then take one more'.

Synopsis
• takeWhile :: (a -> Bool) -> ([a] -> [a]) -> [a] -> [a]
• takeWhile1 :: (a -> Bool) -> [a] -> [a]
• take :: Int -> ([a] -> [a]) -> [a] -> [a]
• filter :: (a -> Bool) -> (a -> Bool) -> ([a] -> [a]) -> [a] -> [a]
• mapAccumL :: (acc -> x -> (acc, y)) -> acc -> (acc -> [y]) -> [x] -> [y]
• break :: (a -> Bool) -> ([a] -> ([a], rest)) -> [a] -> ([a], rest)
• span :: (a -> Bool) -> ([a] -> ([a], rest)) -> [a] -> ([a], rest)
• break1 :: (a -> Bool) -> [a] -> ([a], [a])
• mapM :: Monad m => (a -> m b) -> m [b] -> [a] -> m [b]

# Documentation

takeWhile :: (a -> Bool) -> ([a] -> [a]) -> [a] -> [a] Source #

takeWhile1 :: (a -> Bool) -> [a] -> [a] Source #

takeWhile plus one extra

take :: Int -> ([a] -> [a]) -> [a] -> [a] Source #

filter :: (a -> Bool) -> (a -> Bool) -> ([a] -> [a]) -> [a] -> [a] Source #

mapAccumL :: (acc -> x -> (acc, y)) -> acc -> (acc -> [y]) -> [x] -> [y] Source #

Like mapAccumL, except that you can do something with the final state and append that to the list.

Arguments

 :: (a -> Bool) -> ([a] -> ([a], rest)) Given the list after the break, return (pre, post), where pre will be appended to the end of the first list. -> [a] -> ([a], rest)

span :: (a -> Bool) -> ([a] -> ([a], rest)) -> [a] -> ([a], rest) Source #

break1 :: (a -> Bool) -> [a] -> ([a], [a]) Source #

Break right after the function returns True.

mapM :: Monad m => (a -> m b) -> m [b] -> [a] -> m [b] Source #