module Math.NumberTheory.Zeta.Utils
( intertwine
, skipEvens
, skipOdds
) where
intertwine :: [a] -> [a] -> [a]
intertwine :: forall a. [a] -> [a] -> [a]
intertwine [] [a]
ys = [a]
ys
intertwine (a
x : [a]
xs) [a]
ys = a
x a -> [a] -> [a]
forall a. a -> [a] -> [a]
: [a] -> [a] -> [a]
forall a. [a] -> [a] -> [a]
intertwine [a]
ys [a]
xs
skipOdds :: [a] -> [a]
skipOdds :: forall a. [a] -> [a]
skipOdds (a
x : a
_ : [a]
xs) = a
x a -> [a] -> [a]
forall a. a -> [a] -> [a]
: [a] -> [a]
forall a. [a] -> [a]
skipOdds [a]
xs
skipOdds [a]
xs = [a]
xs
skipEvens :: [a] -> [a]
skipEvens :: forall a. [a] -> [a]
skipEvens = [a] -> [a]
forall a. [a] -> [a]
skipOdds ([a] -> [a]) -> ([a] -> [a]) -> [a] -> [a]
forall b c a. (b -> c) -> (a -> b) -> a -> c
. [a] -> [a]
forall a. HasCallStack => [a] -> [a]
tail