lens-4.2: Lenses, Folds and Traversals

Copyright(C) 2012-2014 Edward Kmett, Alexander Altman
LicenseBSD-style (see the file LICENSE)
MaintainerEdward Kmett <ekmett@gmail.com>
Stabilityprovisional
PortabilityRank2Types
Safe HaskellSafe-Inferred
LanguageHaskell98

Data.List.Split.Lens

Contents

Description

Lenses for working with Data.List.Split

Synopsis

Splitting Folds

splitting :: Splitter a -> Getting (Endo [a]) s a -> Fold s [a] Source

Obtain a Fold by splitting another Fold, Lens, Getter or Traversal according to the given splitting strategy.

splitting :: Splitter a -> Fold s a -> Fold s [a]

splittingOn :: Eq a => [a] -> Getting (Endo [a]) s a -> Fold s [a] Source

Obtain a Fold by splitting another Fold, Lens, Getter or Traversal on the given delimiter.

Equivalent to splitting . dropDelims . onSublist.

splittingOn :: Eq a => [a] -> Fold s a -> Fold s [a]

splittingOneOf :: Eq a => [a] -> Getting (Endo [a]) s a -> Fold s [a] Source

Obtain a Fold by splitting another Fold, Lens, Getter or Traversal on any of the given elements.

Equivalent to splitting . dropDelims . oneOf.

splittingOn :: Eq a => [a] -> Fold s a -> Fold s [a]

splittingWhen :: (a -> Bool) -> Getting (Endo [a]) s a -> Fold s [a] Source

Obtain a Fold by splitting another Fold, Lens, Getter or Traversal on elements satisfying the given predicate.

Equivalent to splitting . dropDelims . whenElt.

splittingWhen :: (a -> Bool) -> Fold s a -> Fold s [a]

endingBy :: Eq a => [a] -> Getting (Endo [a]) s a -> Fold s [a] Source

Obtain a Fold by splitting another Fold, Lens, Getter or Traversal into chunks terminated by the given delimiter.

Equivalent to splitting . dropDelims . onSublist.

endingBy :: Eq a => [a] -> Fold s a -> Fold s [a]

endingByOneOf :: Eq a => [a] -> Getting (Endo [a]) s a -> Fold s [a] Source

Obtain a Fold by splitting another Fold, Lens, Getter or Traversal into chunks terminated by any of the given elements.

Equivalent to splitting . dropFinalBlank . dropDelims . oneOf.

endingByOneOf :: Eq a => [a] -> Fold s a -> Fold s [a]

wordingBy :: (a -> Bool) -> Getting (Endo [a]) s a -> Fold s [a] Source

Obtain a Fold by splitting another Fold, Lens, Getter or Traversal into "words", with word boundaries indicated by the given predicate.

Equivalent to splitting . dropBlanks . dropDelims . whenElt.

wordingBy :: (a -> Bool) -> Fold s a -> Fold s [a]

liningBy :: (a -> Bool) -> Getting (Endo [a]) s a -> Fold s [a] Source

Obtain a Fold by splitting another Fold, Lens, Getter or Traversal into "lines", with line boundaries indicated by the given predicate.

Equivalent to splitting . dropFinalBlank . dropDelims . whenElt.

liningBy :: (a -> Bool) -> Fold s a -> Fold s [a]

chunking Source

Arguments

:: Int
n
-> Getting (Endo [a]) s a 
-> Fold s [a] 

Obtain a Fold by splitting another Fold, Lens, Getter or Traversal into length-n pieces.

>>> "48656c6c6f20776f726c64"^..chunking 2 folded.hex.to chr
"Hello world"
chunking :: Int -> Fold s a -> Fold s [a]

splittingPlaces :: Integral n => [n] -> Getting (Endo [a]) s a -> Fold s [a] Source

Obtain a Fold by splitting another Fold, Lens, Getter or Traversal into chunks of the given lengths, .

splittingPlaces :: Integral n => [n] -> Fold s a -> Fold s [a]

splittingPlacesBlanks :: Integral n => [n] -> Getting (Endo [a]) s a -> Fold s [a] Source

Obtain a Fold by splitting another Fold, Lens, Getter or Traversal into chunks of the given lengths. Unlike splittingPlaces, the output Fold will always be the same length as the first input argument.

splittingPlacesBlanks :: Integral n => [n] -> Fold s a -> Fold s [a]

Lenses for Splitter Internals

delimiters :: Lens (Splitter a) (Splitter b) [a -> Bool] [b -> Bool] Source

Modify or retrieve the list of delimiters for a Splitter.

delimiting :: Lens' (Splitter a) DelimPolicy Source

Modify or retrieve the policy for what a Splitter to do with delimiters.

condensing :: Lens' (Splitter a) CondensePolicy Source

Modify or retrieve the policy for what a Splitter should about consecutive delimiters.

keepInitialBlanks :: Lens' (Splitter a) Bool Source

Modify or retrieve the policy for whether a Splitter should drop an initial blank.

keepFinalBlanks :: Lens' (Splitter a) Bool Source

Modify or retrieve the policy for whether a Splitter should drop a final blank.