lojbanios-0.1.0.0: Lojban teaching platform
Safe HaskellSafe-Inferred
LanguageHaskell2010

Util

Synopsis

Function manipulation

compose2 :: (t1 -> t2) -> (t3 -> t4 -> t1) -> t3 -> t4 -> t2 Source #

List manipulation

stripLeft :: Eq a => a -> [a] -> [a] Source #

stripRight :: Eq a => a -> [a] -> [a] Source #

strip :: Eq a => a -> [a] -> [a] Source #

replace :: Eq a => a -> a -> [a] -> [a] Source #

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

filterOutWords :: [Text] -> [(Int, Text)] -> [(Int, Text)] Source #

filterOutWord :: Text -> [(Int, Text)] -> [(Int, Text)] Source #

sortUniq :: Ord a => [a] -> [a] Source #

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

(?:) :: Eq a => a -> [a] -> [a] infixr 5 Source #

String manipulation

substr :: Int -> Int -> Text -> Text Source #

Random (TODO: assert that sum > 0)

shuffle_ :: StdGen -> [a] -> [a] Source #

shuffle :: StdGen -> [a] -> ([a], StdGen) Source #

chooseItem :: StdGen -> [(Int, a)] -> (a, StdGen) Source #

chooseItemUniformly :: StdGen -> [a] -> (a, StdGen) Source #

chooseItemsUniformly :: Eq a => StdGen -> Int -> [a] -> ([a], StdGen) Source #

generatorFromSingleton :: a -> StdGen -> (a, StdGen) Source #

generatorFromList :: [a] -> StdGen -> (a, StdGen) Source #

generatorFromWeightedList :: [(Int, a)] -> StdGen -> (a, StdGen) Source #

generatorWithRetries :: Int -> (StdGen -> (Maybe b, StdGen)) -> StdGen -> (Maybe b, StdGen) Source #

liftGen :: (a -> b) -> (StdGen -> (a, StdGen)) -> StdGen -> (b, StdGen) Source #

Lifts a function that transforms a Foo into a Bar into a function that transforms a FooGenerator into a BarGenerator.

combineGenerators :: [(Int, StdGen -> a)] -> StdGen -> a Source #

combineGeneratorsUniformly :: [StdGen -> a] -> StdGen -> a Source #

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

curryUniformly :: (a -> b) -> [a] -> StdGen -> b Source #