module Data.Tensort.Utils.Split (splitEvery) where

-- | Split a list into chunks of a given size.
splitEvery :: Int -> [a] -> [[a]]
splitEvery :: forall a. Int -> [a] -> [[a]]
splitEvery Int
_ [] = []
splitEvery Int
n [a]
xs = Int -> [a] -> [a]
forall a. Int -> [a] -> [a]
take Int
n [a]
xs [a] -> [[a]] -> [[a]]
forall a. a -> [a] -> [a]
: Int -> [a] -> [[a]]
forall a. Int -> [a] -> [[a]]
splitEvery Int
n (Int -> [a] -> [a]
forall a. Int -> [a] -> [a]
drop Int
n [a]
xs)