lens-4.7.0.1: 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]

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]

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]

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]

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]

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]

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]

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]

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

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]

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]

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]

Modify or retrieve the list of delimiters for a Splitter.

delimiting :: Lens' (Splitter a) DelimPolicy

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

condensing :: Lens' (Splitter a) CondensePolicy

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

keepInitialBlanks :: Lens' (Splitter a) Bool

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

keepFinalBlanks :: Lens' (Splitter a) Bool

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