openflow-0.3.0: src/Network/Data/Util.hs
module Network.Data.Util
(
concatIntersperse
, unConcatIntersperse
) where
import Data.List (intersperse)
-- Specifications:
-- (A) unConcatIntersperse c . concatIntersperse [c] == id
concatIntersperse :: [a] -> [[a]] -> [a]
concatIntersperse xs = concat . intersperse xs
unConcatIntersperse :: Eq a => a -> [a] -> [[a]]
unConcatIntersperse c s =
let (r,t) = break (==c) s
in r : case t of { [] -> []; _:t' -> unConcatIntersperse c t' }