iota
Safe HaskellNone
LanguageGHC2021

Data.Queue.SWAG

Synopsis

Documentation

slidingWindowAggregationK :: Semigroup a => Int -> [a] -> [a] Source #

>>> slidingWindowAggregationK 3 $ map (:"")['a'..'e']
["abc","bcd","cde"]
>>> slidingWindowAggregationK 100 $ map (:"")['a'..'e']
[]

data Agg a Source #

Constructors

Agg 

Fields

Instances

Instances details
Semigroup a => Semigroup (Agg a) Source #
>>> Agg "abc" "a" <> Agg "def" "d"
Agg {getAggAcc = "abcdef", getAggItem = "a"}
Instance details

Defined in Data.Queue.SWAG

Methods

(<>) :: Agg a -> Agg a -> Agg a #

sconcat :: NonEmpty (Agg a) -> Agg a #

stimes :: Integral b => b -> Agg a -> Agg a #

Show a => Show (Agg a) Source # 
Instance details

Defined in Data.Queue.SWAG

Methods

showsPrec :: Int -> Agg a -> ShowS #

show :: Agg a -> String #

showList :: [Agg a] -> ShowS #

Eq a => Eq (Agg a) Source # 
Instance details

Defined in Data.Queue.SWAG

Methods

(==) :: Agg a -> Agg a -> Bool #

(/=) :: Agg a -> Agg a -> Bool #

data Queue a Source #

Constructors

Q [Agg a] [Agg a] 

Instances

Instances details
Semigroup a => IsList (Queue a) Source # 
Instance details

Defined in Data.Queue.SWAG

Associated Types

type Item (Queue a) 
Instance details

Defined in Data.Queue.SWAG

type Item (Queue a) = a

Methods

fromList :: [Item (Queue a)] -> Queue a #

fromListN :: Int -> [Item (Queue a)] -> Queue a #

toList :: Queue a -> [Item (Queue a)] #

Show a => Show (Queue a) Source # 
Instance details

Defined in Data.Queue.SWAG

Methods

showsPrec :: Int -> Queue a -> ShowS #

show :: Queue a -> String #

showList :: [Queue a] -> ShowS #

Eq a => Eq (Queue a) Source # 
Instance details

Defined in Data.Queue.SWAG

Methods

(==) :: Queue a -> Queue a -> Bool #

(/=) :: Queue a -> Queue a -> Bool #

type Item (Queue a) Source # 
Instance details

Defined in Data.Queue.SWAG

type Item (Queue a) = a

unconsQ :: Semigroup a => Queue a -> Maybe (a, Queue a) Source #

>>> unconsQ $ fromListQ ["a", "b", "c"]
Just ("a",Q [Agg {getAggAcc = "bc", getAggItem = "b"},Agg {getAggAcc = "c", getAggItem = "c"}] [])
>>> unconsQ $ emptyQ |> "a" |> "b" |> "c"
Just ("a",Q [Agg {getAggAcc = "bc", getAggItem = "b"},Agg {getAggAcc = "c", getAggItem = "c"}] [])
>>> unconsQ (emptyQ @String)
Nothing

snocQ :: Semigroup a => Queue a -> a -> Queue a Source #

(|>) :: Semigroup a => Queue a -> a -> Queue a infixl 5 Source #

consQ :: Semigroup a => a -> Queue a -> Queue a Source #

(<|) :: Semigroup a => a -> Queue a -> Queue a infixr 5 Source #

mconcatQ :: Monoid a => Queue a -> a Source #

>>> mconcatQ (("a" <| "b" <| emptyQ) |> "c" |> "d")
"abcd"
>>> mconcatQ (emptyQ @String)
""

sconcatQ :: Semigroup a => Queue a -> a Source #

>>> sconcatQ (("a" <| "b" <| emptyQ) |> "c" |> "d")
"abcd"
>>> sconcatQ (emptyQ @String)
*** Exception: Prelude.undefined

fromListQ :: Semigroup a => [a] -> Queue a Source #

>>> fromListQ ["a", "b", "c"]
Q [Agg {getAggAcc = "abc", getAggItem = "a"},Agg {getAggAcc = "bc", getAggItem = "b"},Agg {getAggAcc = "c", getAggItem = "c"}] []